diff --git a/.github/workflows/kanvas.yml b/.github/workflows/kanvas.yml index 237ea9fec25..7a96fa4bb26 100644 --- a/.github/workflows/kanvas.yml +++ b/.github/workflows/kanvas.yml @@ -37,7 +37,7 @@ jobs: path: action repository: layer5labs/kanvas-snapshot - id: test_result - uses: layer5labs/Kanvas-Snapshot@v0.2.20 + uses: layer5labs/Kanvas-Snapshot@v0.2.21 with: githubToken: ${{ secrets.GITHUB_TOKEN }} # github's personal access token example: "ghp_...." mesheryToken: ${{ secrets.MESHERY_TOKEN }} # Meshery Cloud Authentication token, signin to meshery-cloud to get one, example: ey..... diff --git a/docs/_data/discuss/meshery.json b/docs/_data/discuss/meshery.json index f5b773f5d65..761a9a38810 100644 --- a/docs/_data/discuss/meshery.json +++ b/docs/_data/discuss/meshery.json @@ -1 +1 @@ -{"users":[{"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":1581,"username":"ash-kamrip","name":"ash-kamrip","avatar_template":"/user_avatar/discuss.layer5.io/ash-kamrip/{size}/1472_2.png","trust_level":1},{"id":2871,"username":"Vidit_Kushwaha","name":"Vidit Kushwaha","avatar_template":"/user_avatar/discuss.layer5.io/vidit_kushwaha/{size}/2597_2.png","trust_level":1},{"id":2950,"username":"Ganesh_Venkata_Sai_Manchi","name":"Ganesh Manchi","avatar_template":"/user_avatar/discuss.layer5.io/ganesh_venkata_sai_manchi/{size}/2686_2.png","trust_level":0},{"id":3182,"username":"Sudhiksha_v","name":"Sudhiksha v","avatar_template":"/user_avatar/discuss.layer5.io/sudhiksha_v/{size}/3044_2.png","trust_level":0},{"id":2952,"username":"Anuj","name":"Anuj Kumar Sharma","avatar_template":"/letter_avatar_proxy/v4/letter/a/dbc845/{size}.png","trust_level":2},{"id":3155,"username":"appareddy","name":"Appareddy Dwarampudi","avatar_template":"/letter_avatar_proxy/v4/letter/a/4da419/{size}.png","trust_level":0},{"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":3153,"username":"Ngan_Phan","name":"Ngan Phan","avatar_template":"/letter_avatar_proxy/v4/letter/n/e480ec/{size}.png","trust_level":0},{"id":3100,"username":"Md_Kaif_Ansari","name":"Md Kaif Ansari","avatar_template":"/user_avatar/discuss.layer5.io/md_kaif_ansari/{size}/2855_2.png","trust_level":1},{"id":975,"username":"vishalvivekm","name":"Vivek Vishal","avatar_template":"/user_avatar/discuss.layer5.io/vishalvivekm/{size}/1038_2.png","admin":true,"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":3060,"username":"imkeanserna","name":"Kean Serna","avatar_template":"/user_avatar/discuss.layer5.io/imkeanserna/{size}/2815_2.png","trust_level":1},{"id":2596,"username":"Matthieu.EVRIN","name":"Matthieu EVRIN","avatar_template":"/user_avatar/discuss.layer5.io/matthieu.evrin/{size}/2369_2.png","trust_level":2},{"id":3065,"username":"aadarsh","name":"Aadarsh Shekhar","avatar_template":"/letter_avatar_proxy/v4/letter/a/b9bd4f/{size}.png","trust_level":0},{"id":2945,"username":"Divyansh_Khatri","name":"Divyansh Khatri","avatar_template":"/user_avatar/discuss.layer5.io/divyansh_khatri/{size}/2680_2.png","trust_level":1},{"id":621,"username":"Yash_Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash_sharma/{size}/2715_2.png","trust_level":2},{"id":3042,"username":"Sankarshan_Mishra","name":"Sankarshan Mishra","avatar_template":"/user_avatar/discuss.layer5.io/sankarshan_mishra/{size}/2800_2.png","trust_level":0},{"id":3030,"username":"davidudale","name":"Davidudale","avatar_template":"/user_avatar/discuss.layer5.io/davidudale/{size}/2779_2.png","trust_level":0},{"id":2962,"username":"Pratik_Chandra_Pal","name":"Pratik Chandra Pal","avatar_template":"/user_avatar/discuss.layer5.io/pratik_chandra_pal/{size}/2701_2.png","trust_level":1},{"id":989,"username":"Santosh_Kumar_Doodala","name":"Santosh Kumar Doodala","avatar_template":"/user_avatar/discuss.layer5.io/santosh_kumar_doodala/{size}/943_2.png","trust_level":1},{"id":3025,"username":"Sujai_Gupta","name":"Sujai Gupta","avatar_template":"/user_avatar/discuss.layer5.io/sujai_gupta/{size}/2754_2.png","trust_level":0},{"id":2025,"username":"adisuyash","name":"Aditya Gupta","avatar_template":"/user_avatar/discuss.layer5.io/adisuyash/{size}/1949_2.png","trust_level":0},{"id":2988,"username":"Pranjal_Gupta","name":"Pranjal Gupta","avatar_template":"/user_avatar/discuss.layer5.io/pranjal_gupta/{size}/2736_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":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","trust_level":2},{"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":2901,"username":"Sylan","name":"Syed Mohammed Sylani","avatar_template":"/letter_avatar_proxy/v4/letter/s/ed655f/{size}.png","trust_level":0},{"id":2969,"username":"weilirs","name":"Lawrence Li","avatar_template":"/user_avatar/discuss.layer5.io/weilirs/{size}/2716_2.png","trust_level":0},{"id":2943,"username":"JianMin.Tang","name":"JianMin Tang","avatar_template":"/user_avatar/discuss.layer5.io/jianmin.tang/{size}/2799_2.png","trust_level":1},{"id":2912,"username":"ashish111333","name":"ashish","avatar_template":"/user_avatar/discuss.layer5.io/ashish111333/{size}/2647_2.png","trust_level":1},{"id":117,"username":"theBeginner86","name":"Pranav Singh","avatar_template":"/user_avatar/discuss.layer5.io/thebeginner86/{size}/422_2.png","trust_level":2},{"id":2955,"username":"Guraasees_Singh","name":"Guraasees Singh Taneja","avatar_template":"/user_avatar/discuss.layer5.io/guraasees_singh/{size}/2691_2.png","trust_level":0},{"id":2194,"username":"Kunyue.Xing","name":"Kunyue Xing","avatar_template":"/user_avatar/discuss.layer5.io/kunyue.xing/{size}/2670_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","kanvas","weekly-summary","ux","docs","newcomers","error","meshery-adapter","sistent","devops","kubernetes","maintainer","models","reactjs","setup-issue","announcements","cicd","components","design-review","discussion","docker-desktop","hacktoberfest","help"],"tags":[{"id":78,"name":"meshery","topic_count":383,"staff":false,"description":null}],"topics":[{"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":16,"reply_count":6,"highest_post_number":16,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72.png","created_at":"2023-06-22T12:52:08.145Z","last_posted_at":"2025-01-02T15:14:55.786Z","bumped":true,"bumped_at":"2025-01-02T15:14:55.786Z","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":938,"like_count":26,"has_summary":false,"last_poster_username":"Sudhiksha_v","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":2871,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2950,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3182,"primary_group_id":null,"flair_group_id":null}]},{"id":6418,"title":"404 page not found","fancy_title":"404 page not found","slug":"404-page-not-found","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-12-31T11:42:41.758Z","last_posted_at":"2024-12-31T11:48:22.309Z","bumped":true,"bumped_at":"2024-12-31T11:48:22.309Z","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":8,"like_count":0,"has_summary":false,"last_poster_username":"Anuj","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":2952,"primary_group_id":null,"flair_group_id":null}]},{"id":6414,"title":"Seeking Help with Playground Features for Complex Designs","fancy_title":"Seeking Help with Playground Features for Complex Designs","slug":"seeking-help-with-playground-features-for-complex-designs","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2024-12-30T13:38:26.812Z","last_posted_at":"2024-12-30T14:34:12.173Z","bumped":true,"bumped_at":"2024-12-30T14:34:12.173Z","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":15,"like_count":0,"has_summary":false,"last_poster_username":"appareddy","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3155,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42}]},{"id":4287,"title":"Link Meshery Integrations and Github workflow or local code","fancy_title":"Link Meshery Integrations and Github workflow or local code","slug":"link-meshery-integrations-and-github-workflow-or-local-code","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2023-12-04T14:06:34.660Z","last_posted_at":"2024-12-19T03:45:11.477Z","bumped":true,"bumped_at":"2024-12-19T03:52:53.463Z","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":186,"like_count":0,"has_summary":false,"last_poster_username":"Ngan_Phan","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster, Accepted Answer","user_id":1760,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3153,"primary_group_id":null,"flair_group_id":null}]},{"id":6206,"title":"Issue: Unable to Run make server-local in Meshery Cloud Setup Due to Soda CLI Dependency","fancy_title":"Issue: Unable to Run make server-local in Meshery Cloud Setup Due to Soda CLI Dependency","slug":"issue-unable-to-run-make-server-local-in-meshery-cloud-setup-due-to-soda-cli-dependency","posts_count":17,"reply_count":5,"highest_post_number":17,"image_url":null,"created_at":"2024-11-25T06:32:27.867Z","last_posted_at":"2024-11-28T06:50:38.381Z","bumped":true,"bumped_at":"2024-11-28T06:50:38.381Z","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":31,"like_count":0,"has_summary":false,"last_poster_username":"Md_Kaif_Ansari","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3100,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":975,"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":969,"primary_group_id":null,"flair_group_id":42}]},{"id":6227,"title":"Issue on Setting Up Meshery Using Docker","fancy_title":"Issue on Setting Up Meshery Using Docker","slug":"issue-on-setting-up-meshery-using-docker","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815.png","created_at":"2024-11-28T02:29:49.081Z","last_posted_at":"2024-11-28T03:01:15.681Z","bumped":true,"bumped_at":"2024-11-28T03:01:15.681Z","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":942,"height":314,"url":"https://discuss.layer5.io/uploads/default/original/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815.png"},{"max_width":800,"max_height":800,"width":800,"height":266,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_800x266.png"},{"max_width":600,"max_height":600,"width":600,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_600x200.png"},{"max_width":400,"max_height":400,"width":400,"height":133,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_400x133.png"},{"max_width":300,"max_height":300,"width":300,"height":100,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_300x100.png"},{"max_width":200,"max_height":200,"width":200,"height":66,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_200x66.png"}],"tags":["meshery","doubt"],"tags_descriptions":{},"views":11,"like_count":0,"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":3060,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":6192,"title":"Meshery CI Maintainer: Sangram Rath","fancy_title":"Meshery CI Maintainer: Sangram Rath","slug":"meshery-ci-maintainer-sangram-rath","posts_count":8,"reply_count":0,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_1024x1024.jpeg","created_at":"2024-11-22T19:30:56.869Z","last_posted_at":"2024-11-27T15:55:11.784Z","bumped":true,"bumped_at":"2024-11-27T15:55:11.784Z","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":2432,"height":2432,"url":"https://discuss.layer5.io/uploads/default/original/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":1024,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_1024x1024.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":800,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_800x800.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":600,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_600x600.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":400,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_400x400.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":300,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_300x300.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_200x200.jpeg"}],"tags":["meshery","community","maintainer"],"tags_descriptions":{},"views":68,"like_count":20,"has_summary":false,"last_poster_username":"Matthieu.EVRIN","category_id":9,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":975,"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":3100,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2871,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":6210,"title":"T.roles_names is undefined ( permission path is not provided )","fancy_title":"T.roles_names is undefined ( permission path is not provided )","slug":"t-roles-names-is-undefined-permission-path-is-not-provided","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_1024x288.png","created_at":"2024-11-25T14:50:47.314Z","last_posted_at":"2024-11-25T14:52:14.503Z","bumped":true,"bumped_at":"2024-11-25T14:52:14.503Z","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":1602,"height":452,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":288,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_1024x288.png"},{"max_width":800,"max_height":800,"width":800,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_800x225.png"},{"max_width":600,"max_height":600,"width":600,"height":169,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_600x169.png"},{"max_width":400,"max_height":400,"width":400,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_400x112.png"},{"max_width":300,"max_height":300,"width":300,"height":84,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_300x84.png"},{"max_width":200,"max_height":200,"width":200,"height":56,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_200x56.png"}],"tags":["meshery"],"tags_descriptions":{},"views":6,"like_count":0,"has_summary":false,"last_poster_username":"Shlok_Mishra","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":1760,"primary_group_id":null,"flair_group_id":null}]},{"id":6180,"title":"Meshery Development Meeting | Nov 20th 2024","fancy_title":"Meshery Development Meeting | Nov 20th 2024","slug":"meshery-development-meeting-nov-20th-2024","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-11-20T17:00:51.731Z","last_posted_at":"2024-11-20T17:05:32.886Z","bumped":true,"bumped_at":"2024-11-20T17:05:32.886Z","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":2,"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":975,"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":6098,"title":"Error in \"make server\" and \"make ui-server\"","fancy_title":"Error in “make server” and “make ui-server”","slug":"error-in-make-server-and-make-ui-server","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_1024x576.png","created_at":"2024-11-10T19:19:09.682Z","last_posted_at":"2024-11-16T05:26:50.757Z","bumped":true,"bumped_at":"2024-11-16T05:26:50.757Z","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/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":576,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_1024x576.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_200x112.png"}],"tags":["meshery","community","layer5"],"tags_descriptions":{},"views":27,"like_count":0,"has_summary":false,"last_poster_username":"Anuj","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":3065,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":2952,"primary_group_id":null,"flair_group_id":null}]},{"id":6103,"title":"Difference in dev Environments on port 9081 and 3000","fancy_title":"Difference in dev Environments on port 9081 and 3000","slug":"difference-in-dev-environments-on-port-9081-and-3000","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_1024x501.png","created_at":"2024-11-11T21:41:37.989Z","last_posted_at":"2024-11-13T11:30:42.312Z","bumped":true,"bumped_at":"2024-11-13T11:47:00.451Z","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":1565,"height":767,"url":"https://discuss.layer5.io/uploads/default/original/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":501,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_1024x501.png"},{"max_width":800,"max_height":800,"width":800,"height":392,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_800x392.png"},{"max_width":600,"max_height":600,"width":600,"height":294,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_600x294.png"},{"max_width":400,"max_height":400,"width":400,"height":196,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_400x196.png"},{"max_width":300,"max_height":300,"width":300,"height":147,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_300x147.png"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_200x98.png"}],"tags":["meshery"],"tags_descriptions":{},"views":20,"like_count":1,"has_summary":false,"last_poster_username":"Divyansh_Khatri","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2945,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"id":6093,"title":"npm run lint:fix error","fancy_title":"npm run lint:fix error","slug":"npm-run-lint-fix-error","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-11-10T14:59:22.625Z","last_posted_at":"2024-11-11T07:23:13.856Z","bumped":true,"bumped_at":"2024-11-11T07:23:13.856Z","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":19,"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":3042,"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":5990,"title":"Getting Meshery locally using Docker Desktop for Meshery UI contribution","fancy_title":"Getting Meshery locally using Docker Desktop for Meshery UI contribution","slug":"getting-meshery-locally-using-docker-desktop-for-meshery-ui-contribution","posts_count":8,"reply_count":4,"highest_post_number":9,"image_url":null,"created_at":"2024-10-30T17:10:45.436Z","last_posted_at":"2024-11-07T15:24:05.950Z","bumped":true,"bumped_at":"2024-11-07T15:24:05.950Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","layer5","websites","meshery-ui"],"tags_descriptions":{},"views":53,"like_count":0,"has_summary":false,"last_poster_username":"davidudale","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3030,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"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":2962,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42}]},{"id":6058,"title":"Meshery + GCP Connector","fancy_title":"Meshery + GCP Connector","slug":"meshery-gcp-connector","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-11-07T07:06:49.627Z","last_posted_at":"2024-11-07T07:06:49.827Z","bumped":true,"bumped_at":"2024-11-07T13:14:55.950Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt"],"tags_descriptions":{},"views":7,"like_count":0,"has_summary":false,"last_poster_username":"Santosh_Kumar_Doodala","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":989,"primary_group_id":null,"flair_group_id":null}]},{"id":5976,"title":"Getting error when using utils.SetupContextEnv() when writing tests for relationship command","fancy_title":"Getting error when using utils.SetupContextEnv() when writing tests for relationship command","slug":"getting-error-when-using-utils-setupcontextenv-when-writing-tests-for-relationship-command","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-10-24T11:27:01.683Z","last_posted_at":"2024-10-30T22:17:13.134Z","bumped":true,"bumped_at":"2024-10-30T22:17:13.134Z","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":18,"like_count":0,"has_summary":false,"last_poster_username":"Matthieu.EVRIN","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3025,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":4199,"title":"Where's the Cortex Integration of Meshmap?","fancy_title":"Where’s the Cortex Integration of Meshmap?","slug":"wheres-the-cortex-integration-of-meshmap","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f.png","created_at":"2023-11-16T16:10:31.993Z","last_posted_at":"2023-11-16T16:10:32.183Z","bumped":true,"bumped_at":"2024-10-28T14:03:40.069Z","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":495,"height":891,"url":"https://discuss.layer5.io/uploads/default/original/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f.png"},{"max_width":800,"max_height":800,"width":444,"height":800,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_444x800.png"},{"max_width":600,"max_height":600,"width":333,"height":600,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_333x600.png"},{"max_width":400,"max_height":400,"width":222,"height":400,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_222x400.png"},{"max_width":300,"max_height":300,"width":166,"height":300,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_166x300.png"},{"max_width":200,"max_height":200,"width":111,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_111x200.png"}],"tags":["meshery","community","doubt","kanvas","help"],"tags_descriptions":{},"views":159,"like_count":0,"has_summary":false,"last_poster_username":"adisuyash","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2025,"primary_group_id":null,"flair_group_id":null}]},{"id":5867,"title":"I created an environment but it cannot be listed","fancy_title":"I created an environment but it cannot be listed","slug":"i-created-an-environment-but-it-cannot-be-listed","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png","created_at":"2024-10-09T11:14:51.761Z","last_posted_at":"2024-10-20T05:29:07.758Z","bumped":true,"bumped_at":"2024-10-20T05:29:07.758Z","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":1319,"height":94,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":72,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png"},{"max_width":800,"max_height":800,"width":800,"height":57,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_800x57.png"},{"max_width":600,"max_height":600,"width":600,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_600x42.png"},{"max_width":400,"max_height":400,"width":400,"height":28,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_400x28.png"},{"max_width":300,"max_height":300,"width":300,"height":21,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_300x21.png"},{"max_width":200,"max_height":200,"width":200,"height":14,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_200x14.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":22,"like_count":0,"has_summary":false,"last_poster_username":"Pranjal_Gupta","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2988,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":826,"primary_group_id":null,"flair_group_id":null}]},{"id":5888,"title":"Explore Meshery's Published Relationship Design Examples","fancy_title":"Explore Meshery’s Published Relationship Design Examples","slug":"explore-mesherys-published-relationship-design-examples","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-10-14T16:33:38.193Z","last_posted_at":"2024-10-14T16:33:38.350Z","bumped":true,"bumped_at":"2024-10-18T13:20:05.906Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","kanvas"],"tags_descriptions":{},"views":38,"like_count":1,"has_summary":false,"last_poster_username":"Awani_Alero","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2853,"primary_group_id":null,"flair_group_id":42}]},{"id":5869,"title":"Meshery CLI Maintainer: Matthieu Evrin","fancy_title":"Meshery CLI Maintainer: Matthieu Evrin","slug":"meshery-cli-maintainer-matthieu-evrin","posts_count":6,"reply_count":0,"highest_post_number":6,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_1024x1024.jpeg","created_at":"2024-10-09T13:55:59.517Z","last_posted_at":"2024-10-15T09:23:25.567Z","bumped":true,"bumped_at":"2024-10-15T09:23:25.567Z","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":2432,"height":2432,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":1024,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_1024x1024.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":800,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_800x800.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":600,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_600x600.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":400,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_400x400.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":300,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_300x300.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_200x200.jpeg"}],"tags":["meshery","community","maintainer"],"tags_descriptions":{},"views":76,"like_count":18,"has_summary":false,"last_poster_username":"Sylan","category_id":9,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":975,"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":826,"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":2901,"primary_group_id":null,"flair_group_id":null}]},{"id":5874,"title":"Fatal: repository 'https://github.com/mitchellh/osext/' not found","fancy_title":"Fatal: repository ‘https://github.com/mitchellh/osext/’ not found","slug":"fatal-repository-https-github-com-mitchellh-osext-not-found","posts_count":5,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2024-10-11T02:10:02.778Z","last_posted_at":"2024-10-14T03:23:02.287Z","bumped":true,"bumped_at":"2024-10-14T03:23:02.287Z","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":52,"like_count":0,"has_summary":false,"last_poster_username":"weilirs","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2969,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":2596,"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":5788,"title":"How to connect sistent to meshery locally?","fancy_title":"How to connect sistent to meshery locally?","slug":"how-to-connect-sistent-to-meshery-locally","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2024-09-27T14:27:32.438Z","last_posted_at":"2024-10-08T22:19:35.252Z","bumped":true,"bumped_at":"2024-10-09T19:49:58.576Z","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":28,"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":"latest single","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"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":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-06-27T14:43:51.432Z","last_posted_at":"2024-10-09T15:22:09.275Z","bumped":true,"bumped_at":"2024-10-09T15:22:09.275Z","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":40,"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":826,"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":5860,"title":"Make ui build issue","fancy_title":"Make ui build issue","slug":"make-ui-build-issue","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-10-08T22:03:27.178Z","last_posted_at":"2024-10-08T22:03:27.304Z","bumped":true,"bumped_at":"2024-10-08T22:03:27.304Z","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":16,"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":621,"primary_group_id":null,"flair_group_id":null}]},{"id":5777,"title":"Problem with ruby installation on Linux","fancy_title":"Problem with ruby installation on Linux","slug":"problem-with-ruby-installation-on-linux","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":null,"created_at":"2024-09-25T11:44:32.264Z","last_posted_at":"2024-10-03T05:27:07.717Z","bumped":true,"bumped_at":"2024-10-03T05:27:07.717Z","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":30,"like_count":1,"has_summary":false,"last_poster_username":"Pratik_Chandra_Pal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2962,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":5806,"title":"`mesheryctl system start` errors","fancy_title":"`mesheryctl system start` errors","slug":"mesheryctl-system-start-errors","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":null,"created_at":"2024-09-30T05:34:01.280Z","last_posted_at":"2024-10-01T07:42:33.328Z","bumped":true,"bumped_at":"2024-10-01T07:42:33.328Z","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":33,"like_count":4,"has_summary":false,"last_poster_username":"weilirs","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2969,"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":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":5785,"title":"Hacktoberfest Prep 2024: Extending Meshery Models","fancy_title":"Hacktoberfest Prep 2024: Extending Meshery Models","slug":"hacktoberfest-prep-2024-extending-meshery-models","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_1024x577.jpeg","created_at":"2024-09-27T03:57:20.817Z","last_posted_at":"2024-09-27T03:59:34.385Z","bumped":true,"bumped_at":"2024-09-27T03:57:20.967Z","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":3856,"height":2176,"url":"https://discuss.layer5.io/uploads/default/original/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":577,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_1024x577.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":451,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_800x451.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":338,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_600x338.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_400x225.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":169,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_300x169.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_200x112.jpeg"}],"tags":["meshery","community","meetings","layer5","hacktoberfest"],"tags_descriptions":{"meetings":""},"views":28,"like_count":1,"has_summary":false,"last_poster_username":"Sudhanshu_Dasgupta","category_id":9,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42}]},{"id":5728,"title":"Problem on meshery-cli setup with minikube","fancy_title":"Problem on meshery-cli setup with minikube","slug":"problem-on-meshery-cli-setup-with-minikube","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2024-09-09T10:06:09.151Z","last_posted_at":"2024-09-25T15:58:24.330Z","bumped":true,"bumped_at":"2024-09-25T15:58:24.330Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt"],"tags_descriptions":{},"views":56,"like_count":0,"has_summary":false,"last_poster_username":"theBeginner86","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2943,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2912,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2853,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":117,"primary_group_id":null,"flair_group_id":null}]},{"id":5758,"title":"What's the deadline for applying to meshery mentorship program through the linux foundation portal","fancy_title":"What’s the deadline for applying to meshery mentorship program through the linux foundation portal","slug":"whats-the-deadline-for-applying-to-meshery-mentorship-program-through-the-linux-foundation-portal","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-09-15T21:25:49.593Z","last_posted_at":"2024-09-15T21:25:49.749Z","bumped":true,"bumped_at":"2024-09-15T21:25:49.749Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","doubt"],"tags_descriptions":{},"views":27,"like_count":0,"has_summary":false,"last_poster_username":"Guraasees_Singh","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2955,"primary_group_id":null,"flair_group_id":null}]},{"id":5734,"title":"Debug Problem in meshery server","fancy_title":"Debug Problem in meshery server","slug":"debug-problem-in-meshery-server","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-09-12T00:39:06.286Z","last_posted_at":"2024-09-12T00:39:06.456Z","bumped":true,"bumped_at":"2024-09-12T00:39:06.456Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt"],"tags_descriptions":{},"views":10,"like_count":0,"has_summary":false,"last_poster_username":"JianMin.Tang","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":2943,"primary_group_id":null,"flair_group_id":null}]},{"id":5708,"title":"Which projects (github repos) are included in Layer5.io internships","fancy_title":"Which projects (github repos) are included in Layer5.io internships","slug":"which-projects-github-repos-are-included-in-layer5-io-internships","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2024-09-05T08:03:21.554Z","last_posted_at":"2024-09-05T19:01:04.809Z","bumped":true,"bumped_at":"2024-09-05T19:01:04.809Z","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":45,"like_count":3,"has_summary":false,"last_poster_username":"Kunyue.Xing","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2194,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":826,"primary_group_id":null,"flair_group_id":null}]}]}} \ No newline at end of file +{"users":[{"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":1581,"username":"ash-kamrip","name":"ash-kamrip","avatar_template":"/user_avatar/discuss.layer5.io/ash-kamrip/{size}/1472_2.png","trust_level":1},{"id":2871,"username":"Vidit_Kushwaha","name":"Vidit Kushwaha","avatar_template":"/user_avatar/discuss.layer5.io/vidit_kushwaha/{size}/2597_2.png","trust_level":1},{"id":2950,"username":"Ganesh_Venkata_Sai_Manchi","name":"Ganesh Manchi","avatar_template":"/user_avatar/discuss.layer5.io/ganesh_venkata_sai_manchi/{size}/2686_2.png","trust_level":0},{"id":3182,"username":"Sudhiksha_v","name":"Sudhiksha v","avatar_template":"/user_avatar/discuss.layer5.io/sudhiksha_v/{size}/3044_2.png","trust_level":0},{"id":2952,"username":"Anuj","name":"Anuj Kumar Sharma","avatar_template":"/letter_avatar_proxy/v4/letter/a/dbc845/{size}.png","trust_level":2},{"id":3155,"username":"appareddy","name":"Appareddy Dwarampudi","avatar_template":"/letter_avatar_proxy/v4/letter/a/4da419/{size}.png","trust_level":0},{"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":3153,"username":"Ngan_Phan","name":"Ngan Phan","avatar_template":"/letter_avatar_proxy/v4/letter/n/e480ec/{size}.png","trust_level":0},{"id":3100,"username":"Md_Kaif_Ansari","name":"Md Kaif Ansari","avatar_template":"/user_avatar/discuss.layer5.io/md_kaif_ansari/{size}/2855_2.png","trust_level":1},{"id":975,"username":"vishalvivekm","name":"Vivek Vishal","avatar_template":"/user_avatar/discuss.layer5.io/vishalvivekm/{size}/1038_2.png","admin":true,"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":3060,"username":"imkeanserna","name":"Kean Serna","avatar_template":"/user_avatar/discuss.layer5.io/imkeanserna/{size}/2815_2.png","trust_level":1},{"id":2596,"username":"Matthieu.EVRIN","name":"Matthieu EVRIN","avatar_template":"/user_avatar/discuss.layer5.io/matthieu.evrin/{size}/2369_2.png","trust_level":2},{"id":3065,"username":"aadarsh","name":"Aadarsh Shekhar","avatar_template":"/letter_avatar_proxy/v4/letter/a/b9bd4f/{size}.png","trust_level":0},{"id":2945,"username":"Divyansh_Khatri","name":"Divyansh Khatri","avatar_template":"/user_avatar/discuss.layer5.io/divyansh_khatri/{size}/2680_2.png","trust_level":1},{"id":621,"username":"Yash_Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash_sharma/{size}/2715_2.png","trust_level":2},{"id":3042,"username":"Sankarshan_Mishra","name":"Sankarshan Mishra","avatar_template":"/user_avatar/discuss.layer5.io/sankarshan_mishra/{size}/2800_2.png","trust_level":0},{"id":3030,"username":"davidudale","name":"Davidudale","avatar_template":"/user_avatar/discuss.layer5.io/davidudale/{size}/2779_2.png","trust_level":0},{"id":2962,"username":"Pratik_Chandra_Pal","name":"Pratik Chandra Pal","avatar_template":"/user_avatar/discuss.layer5.io/pratik_chandra_pal/{size}/2701_2.png","trust_level":1},{"id":989,"username":"Santosh_Kumar_Doodala","name":"Santosh Kumar Doodala","avatar_template":"/user_avatar/discuss.layer5.io/santosh_kumar_doodala/{size}/943_2.png","trust_level":1},{"id":3025,"username":"Sujai_Gupta","name":"Sujai Gupta","avatar_template":"/user_avatar/discuss.layer5.io/sujai_gupta/{size}/2754_2.png","trust_level":0},{"id":2025,"username":"adisuyash","name":"Aditya Gupta","avatar_template":"/user_avatar/discuss.layer5.io/adisuyash/{size}/1949_2.png","trust_level":0},{"id":2988,"username":"Pranjal_Gupta","name":"Pranjal Gupta","avatar_template":"/user_avatar/discuss.layer5.io/pranjal_gupta/{size}/2736_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":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","trust_level":2},{"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":2901,"username":"Sylan","name":"Syed Mohammed Sylani","avatar_template":"/letter_avatar_proxy/v4/letter/s/ed655f/{size}.png","trust_level":0},{"id":2969,"username":"weilirs","name":"Lawrence Li","avatar_template":"/user_avatar/discuss.layer5.io/weilirs/{size}/2716_2.png","trust_level":0},{"id":2943,"username":"JianMin.Tang","name":"JianMin Tang","avatar_template":"/user_avatar/discuss.layer5.io/jianmin.tang/{size}/2799_2.png","trust_level":1},{"id":2912,"username":"ashish111333","name":"ashish","avatar_template":"/user_avatar/discuss.layer5.io/ashish111333/{size}/2647_2.png","trust_level":1},{"id":117,"username":"theBeginner86","name":"Pranav Singh","avatar_template":"/user_avatar/discuss.layer5.io/thebeginner86/{size}/422_2.png","trust_level":2},{"id":2955,"username":"Guraasees_Singh","name":"Guraasees Singh Taneja","avatar_template":"/user_avatar/discuss.layer5.io/guraasees_singh/{size}/2691_2.png","trust_level":0},{"id":2194,"username":"Kunyue.Xing","name":"Kunyue Xing","avatar_template":"/user_avatar/discuss.layer5.io/kunyue.xing/{size}/2670_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","kanvas","weekly-summary","ux","docs","newcomers","error","meshery-adapter","sistent","devops","kubernetes","maintainer","models","reactjs","setup-issue","announcements","cicd","components","design-review","discussion","docker-desktop","hacktoberfest","help"],"tags":[{"id":78,"name":"meshery","topic_count":383,"staff":false,"description":null}],"topics":[{"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":16,"reply_count":6,"highest_post_number":16,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/f/f476bab5e84edfdfa15dedef0ec4b49d95a9fa72.png","created_at":"2023-06-22T12:52:08.145Z","last_posted_at":"2025-01-02T15:14:55.786Z","bumped":true,"bumped_at":"2025-01-02T15:14:55.786Z","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":940,"like_count":27,"has_summary":false,"last_poster_username":"Sudhiksha_v","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":2871,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2950,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3182,"primary_group_id":null,"flair_group_id":null}]},{"id":6418,"title":"404 page not found","fancy_title":"404 page not found","slug":"404-page-not-found","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-12-31T11:42:41.758Z","last_posted_at":"2024-12-31T11:48:22.309Z","bumped":true,"bumped_at":"2024-12-31T11:48:22.309Z","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":9,"like_count":0,"has_summary":false,"last_poster_username":"Anuj","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":2952,"primary_group_id":null,"flair_group_id":null}]},{"id":6414,"title":"Seeking Help with Playground Features for Complex Designs","fancy_title":"Seeking Help with Playground Features for Complex Designs","slug":"seeking-help-with-playground-features-for-complex-designs","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2024-12-30T13:38:26.812Z","last_posted_at":"2024-12-30T14:34:12.173Z","bumped":true,"bumped_at":"2024-12-30T14:34:12.173Z","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":16,"like_count":0,"has_summary":false,"last_poster_username":"appareddy","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3155,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42}]},{"id":4287,"title":"Link Meshery Integrations and Github workflow or local code","fancy_title":"Link Meshery Integrations and Github workflow or local code","slug":"link-meshery-integrations-and-github-workflow-or-local-code","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2023-12-04T14:06:34.660Z","last_posted_at":"2024-12-19T03:45:11.477Z","bumped":true,"bumped_at":"2024-12-19T03:52:53.463Z","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":186,"like_count":0,"has_summary":false,"last_poster_username":"Ngan_Phan","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster, Accepted Answer","user_id":1760,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3153,"primary_group_id":null,"flair_group_id":null}]},{"id":6206,"title":"Issue: Unable to Run make server-local in Meshery Cloud Setup Due to Soda CLI Dependency","fancy_title":"Issue: Unable to Run make server-local in Meshery Cloud Setup Due to Soda CLI Dependency","slug":"issue-unable-to-run-make-server-local-in-meshery-cloud-setup-due-to-soda-cli-dependency","posts_count":17,"reply_count":5,"highest_post_number":17,"image_url":null,"created_at":"2024-11-25T06:32:27.867Z","last_posted_at":"2024-11-28T06:50:38.381Z","bumped":true,"bumped_at":"2024-11-28T06:50:38.381Z","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":32,"like_count":0,"has_summary":false,"last_poster_username":"Md_Kaif_Ansari","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3100,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":975,"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":969,"primary_group_id":null,"flair_group_id":42}]},{"id":6227,"title":"Issue on Setting Up Meshery Using Docker","fancy_title":"Issue on Setting Up Meshery Using Docker","slug":"issue-on-setting-up-meshery-using-docker","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815.png","created_at":"2024-11-28T02:29:49.081Z","last_posted_at":"2024-11-28T03:01:15.681Z","bumped":true,"bumped_at":"2024-11-28T03:01:15.681Z","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":942,"height":314,"url":"https://discuss.layer5.io/uploads/default/original/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815.png"},{"max_width":800,"max_height":800,"width":800,"height":266,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_800x266.png"},{"max_width":600,"max_height":600,"width":600,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_600x200.png"},{"max_width":400,"max_height":400,"width":400,"height":133,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_400x133.png"},{"max_width":300,"max_height":300,"width":300,"height":100,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_300x100.png"},{"max_width":200,"max_height":200,"width":200,"height":66,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/59c8525ce96e5d5b754c39a54e5ead4e460e0815_2_200x66.png"}],"tags":["meshery","doubt"],"tags_descriptions":{},"views":11,"like_count":0,"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":3060,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":6192,"title":"Meshery CI Maintainer: Sangram Rath","fancy_title":"Meshery CI Maintainer: Sangram Rath","slug":"meshery-ci-maintainer-sangram-rath","posts_count":8,"reply_count":0,"highest_post_number":8,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_1024x1024.jpeg","created_at":"2024-11-22T19:30:56.869Z","last_posted_at":"2024-11-27T15:55:11.784Z","bumped":true,"bumped_at":"2024-11-27T15:55:11.784Z","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":2432,"height":2432,"url":"https://discuss.layer5.io/uploads/default/original/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":1024,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_1024x1024.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":800,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_800x800.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":600,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_600x600.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":400,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_400x400.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":300,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_300x300.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/8/8a97e85085b06453043a32eb63bc64944ea10fa7_2_200x200.jpeg"}],"tags":["meshery","community","maintainer"],"tags_descriptions":{},"views":69,"like_count":20,"has_summary":false,"last_poster_username":"Matthieu.EVRIN","category_id":9,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":975,"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":3100,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2871,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":6210,"title":"T.roles_names is undefined ( permission path is not provided )","fancy_title":"T.roles_names is undefined ( permission path is not provided )","slug":"t-roles-names-is-undefined-permission-path-is-not-provided","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_1024x288.png","created_at":"2024-11-25T14:50:47.314Z","last_posted_at":"2024-11-25T14:52:14.503Z","bumped":true,"bumped_at":"2024-11-25T14:52:14.503Z","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":1602,"height":452,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":288,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_1024x288.png"},{"max_width":800,"max_height":800,"width":800,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_800x225.png"},{"max_width":600,"max_height":600,"width":600,"height":169,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_600x169.png"},{"max_width":400,"max_height":400,"width":400,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_400x112.png"},{"max_width":300,"max_height":300,"width":300,"height":84,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_300x84.png"},{"max_width":200,"max_height":200,"width":200,"height":56,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/e00e95c8a8f1b5018eeeceb2422b3356b7006604_2_200x56.png"}],"tags":["meshery"],"tags_descriptions":{},"views":6,"like_count":0,"has_summary":false,"last_poster_username":"Shlok_Mishra","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":1760,"primary_group_id":null,"flair_group_id":null}]},{"id":6180,"title":"Meshery Development Meeting | Nov 20th 2024","fancy_title":"Meshery Development Meeting | Nov 20th 2024","slug":"meshery-development-meeting-nov-20th-2024","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-11-20T17:00:51.731Z","last_posted_at":"2024-11-20T17:05:32.886Z","bumped":true,"bumped_at":"2024-11-20T17:05:32.886Z","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":2,"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":975,"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":6098,"title":"Error in \"make server\" and \"make ui-server\"","fancy_title":"Error in “make server” and “make ui-server”","slug":"error-in-make-server-and-make-ui-server","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_1024x576.png","created_at":"2024-11-10T19:19:09.682Z","last_posted_at":"2024-11-16T05:26:50.757Z","bumped":true,"bumped_at":"2024-11-16T05:26:50.757Z","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/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":576,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_1024x576.png"},{"max_width":800,"max_height":800,"width":800,"height":450,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_800x450.png"},{"max_width":600,"max_height":600,"width":600,"height":337,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_600x337.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":168,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_300x168.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/5/53a6cbcac861d1c1cbcdb88134402a1cb2977fac_2_200x112.png"}],"tags":["meshery","community","layer5"],"tags_descriptions":{},"views":27,"like_count":0,"has_summary":false,"last_poster_username":"Anuj","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":null,"description":"Original Poster","user_id":3065,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":2952,"primary_group_id":null,"flair_group_id":null}]},{"id":6103,"title":"Difference in dev Environments on port 9081 and 3000","fancy_title":"Difference in dev Environments on port 9081 and 3000","slug":"difference-in-dev-environments-on-port-9081-and-3000","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_1024x501.png","created_at":"2024-11-11T21:41:37.989Z","last_posted_at":"2024-11-13T11:30:42.312Z","bumped":true,"bumped_at":"2024-11-13T11:47:00.451Z","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":1565,"height":767,"url":"https://discuss.layer5.io/uploads/default/original/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":501,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_1024x501.png"},{"max_width":800,"max_height":800,"width":800,"height":392,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_800x392.png"},{"max_width":600,"max_height":600,"width":600,"height":294,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_600x294.png"},{"max_width":400,"max_height":400,"width":400,"height":196,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_400x196.png"},{"max_width":300,"max_height":300,"width":300,"height":147,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_300x147.png"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/7/7b3a949aa95092030ef3adbfe4363c8bd7d0b89c_2_200x98.png"}],"tags":["meshery"],"tags_descriptions":{},"views":20,"like_count":1,"has_summary":false,"last_poster_username":"Divyansh_Khatri","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2945,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"id":6093,"title":"npm run lint:fix error","fancy_title":"npm run lint:fix error","slug":"npm-run-lint-fix-error","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-11-10T14:59:22.625Z","last_posted_at":"2024-11-11T07:23:13.856Z","bumped":true,"bumped_at":"2024-11-11T07:23:13.856Z","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":19,"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":3042,"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":5990,"title":"Getting Meshery locally using Docker Desktop for Meshery UI contribution","fancy_title":"Getting Meshery locally using Docker Desktop for Meshery UI contribution","slug":"getting-meshery-locally-using-docker-desktop-for-meshery-ui-contribution","posts_count":8,"reply_count":4,"highest_post_number":9,"image_url":null,"created_at":"2024-10-30T17:10:45.436Z","last_posted_at":"2024-11-07T15:24:05.950Z","bumped":true,"bumped_at":"2024-11-07T15:24:05.950Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","layer5","websites","meshery-ui"],"tags_descriptions":{},"views":53,"like_count":0,"has_summary":false,"last_poster_username":"davidudale","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3030,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":975,"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":2962,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42}]},{"id":6058,"title":"Meshery + GCP Connector","fancy_title":"Meshery + GCP Connector","slug":"meshery-gcp-connector","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-11-07T07:06:49.627Z","last_posted_at":"2024-11-07T07:06:49.827Z","bumped":true,"bumped_at":"2024-11-07T13:14:55.950Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt"],"tags_descriptions":{},"views":7,"like_count":0,"has_summary":false,"last_poster_username":"Santosh_Kumar_Doodala","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":989,"primary_group_id":null,"flair_group_id":null}]},{"id":5976,"title":"Getting error when using utils.SetupContextEnv() when writing tests for relationship command","fancy_title":"Getting error when using utils.SetupContextEnv() when writing tests for relationship command","slug":"getting-error-when-using-utils-setupcontextenv-when-writing-tests-for-relationship-command","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-10-24T11:27:01.683Z","last_posted_at":"2024-10-30T22:17:13.134Z","bumped":true,"bumped_at":"2024-10-30T22:17:13.134Z","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":18,"like_count":0,"has_summary":false,"last_poster_username":"Matthieu.EVRIN","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3025,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":4199,"title":"Where's the Cortex Integration of Meshmap?","fancy_title":"Where’s the Cortex Integration of Meshmap?","slug":"wheres-the-cortex-integration-of-meshmap","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://discuss.layer5.io/uploads/default/original/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f.png","created_at":"2023-11-16T16:10:31.993Z","last_posted_at":"2023-11-16T16:10:32.183Z","bumped":true,"bumped_at":"2024-10-28T14:03:40.069Z","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":495,"height":891,"url":"https://discuss.layer5.io/uploads/default/original/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f.png"},{"max_width":800,"max_height":800,"width":444,"height":800,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_444x800.png"},{"max_width":600,"max_height":600,"width":333,"height":600,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_333x600.png"},{"max_width":400,"max_height":400,"width":222,"height":400,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_222x400.png"},{"max_width":300,"max_height":300,"width":166,"height":300,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_166x300.png"},{"max_width":200,"max_height":200,"width":111,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/d/d10a5a6a79bed4b6d66cf95f5d1a7fdb0cc9875f_2_111x200.png"}],"tags":["meshery","community","doubt","kanvas","help"],"tags_descriptions":{},"views":159,"like_count":0,"has_summary":false,"last_poster_username":"adisuyash","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2025,"primary_group_id":null,"flair_group_id":null}]},{"id":5867,"title":"I created an environment but it cannot be listed","fancy_title":"I created an environment but it cannot be listed","slug":"i-created-an-environment-but-it-cannot-be-listed","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png","created_at":"2024-10-09T11:14:51.761Z","last_posted_at":"2024-10-20T05:29:07.758Z","bumped":true,"bumped_at":"2024-10-20T05:29:07.758Z","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":1319,"height":94,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":72,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png"},{"max_width":800,"max_height":800,"width":800,"height":57,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_800x57.png"},{"max_width":600,"max_height":600,"width":600,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_600x42.png"},{"max_width":400,"max_height":400,"width":400,"height":28,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_400x28.png"},{"max_width":300,"max_height":300,"width":300,"height":21,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_300x21.png"},{"max_width":200,"max_height":200,"width":200,"height":14,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_200x14.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":22,"like_count":0,"has_summary":false,"last_poster_username":"Pranjal_Gupta","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2988,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":826,"primary_group_id":null,"flair_group_id":null}]},{"id":5888,"title":"Explore Meshery's Published Relationship Design Examples","fancy_title":"Explore Meshery’s Published Relationship Design Examples","slug":"explore-mesherys-published-relationship-design-examples","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-10-14T16:33:38.193Z","last_posted_at":"2024-10-14T16:33:38.350Z","bumped":true,"bumped_at":"2024-10-18T13:20:05.906Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","kanvas"],"tags_descriptions":{},"views":38,"like_count":1,"has_summary":false,"last_poster_username":"Awani_Alero","category_id":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2853,"primary_group_id":null,"flair_group_id":42}]},{"id":5869,"title":"Meshery CLI Maintainer: Matthieu Evrin","fancy_title":"Meshery CLI Maintainer: Matthieu Evrin","slug":"meshery-cli-maintainer-matthieu-evrin","posts_count":6,"reply_count":0,"highest_post_number":6,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_1024x1024.jpeg","created_at":"2024-10-09T13:55:59.517Z","last_posted_at":"2024-10-15T09:23:25.567Z","bumped":true,"bumped_at":"2024-10-15T09:23:25.567Z","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":2432,"height":2432,"url":"https://discuss.layer5.io/uploads/default/original/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":1024,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_1024x1024.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":800,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_800x800.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":600,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_600x600.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":400,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_400x400.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":300,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_300x300.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":200,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/e/ea9cef474ec212be6fa9c74cd3e2cb02e9bacd71_2_200x200.jpeg"}],"tags":["meshery","community","maintainer"],"tags_descriptions":{},"views":76,"like_count":18,"has_summary":false,"last_poster_username":"Sylan","category_id":9,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":975,"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":826,"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":2901,"primary_group_id":null,"flair_group_id":null}]},{"id":5874,"title":"Fatal: repository 'https://github.com/mitchellh/osext/' not found","fancy_title":"Fatal: repository ‘https://github.com/mitchellh/osext/’ not found","slug":"fatal-repository-https-github-com-mitchellh-osext-not-found","posts_count":5,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2024-10-11T02:10:02.778Z","last_posted_at":"2024-10-14T03:23:02.287Z","bumped":true,"bumped_at":"2024-10-14T03:23:02.287Z","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":52,"like_count":0,"has_summary":false,"last_poster_username":"weilirs","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2969,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":2596,"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":5788,"title":"How to connect sistent to meshery locally?","fancy_title":"How to connect sistent to meshery locally?","slug":"how-to-connect-sistent-to-meshery-locally","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2024-09-27T14:27:32.438Z","last_posted_at":"2024-10-08T22:19:35.252Z","bumped":true,"bumped_at":"2024-10-09T19:49:58.576Z","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":28,"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":"latest single","description":"Original Poster, Most Recent Poster, Accepted Answer","user_id":621,"primary_group_id":null,"flair_group_id":null}]},{"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":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-06-27T14:43:51.432Z","last_posted_at":"2024-10-09T15:22:09.275Z","bumped":true,"bumped_at":"2024-10-09T15:22:09.275Z","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":40,"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":826,"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":5860,"title":"Make ui build issue","fancy_title":"Make ui build issue","slug":"make-ui-build-issue","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-10-08T22:03:27.178Z","last_posted_at":"2024-10-08T22:03:27.304Z","bumped":true,"bumped_at":"2024-10-08T22:03:27.304Z","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":16,"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":621,"primary_group_id":null,"flair_group_id":null}]},{"id":5777,"title":"Problem with ruby installation on Linux","fancy_title":"Problem with ruby installation on Linux","slug":"problem-with-ruby-installation-on-linux","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":null,"created_at":"2024-09-25T11:44:32.264Z","last_posted_at":"2024-10-03T05:27:07.717Z","bumped":true,"bumped_at":"2024-10-03T05:27:07.717Z","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":30,"like_count":1,"has_summary":false,"last_poster_username":"Pratik_Chandra_Pal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2962,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":5806,"title":"`mesheryctl system start` errors","fancy_title":"`mesheryctl system start` errors","slug":"mesheryctl-system-start-errors","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":null,"created_at":"2024-09-30T05:34:01.280Z","last_posted_at":"2024-10-01T07:42:33.328Z","bumped":true,"bumped_at":"2024-10-01T07:42:33.328Z","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":33,"like_count":4,"has_summary":false,"last_poster_username":"weilirs","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2969,"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":null,"description":"Frequent Poster","user_id":621,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2596,"primary_group_id":null,"flair_group_id":null}]},{"id":5785,"title":"Hacktoberfest Prep 2024: Extending Meshery Models","fancy_title":"Hacktoberfest Prep 2024: Extending Meshery Models","slug":"hacktoberfest-prep-2024-extending-meshery-models","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_1024x577.jpeg","created_at":"2024-09-27T03:57:20.817Z","last_posted_at":"2024-09-27T03:59:34.385Z","bumped":true,"bumped_at":"2024-09-27T03:57:20.967Z","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":3856,"height":2176,"url":"https://discuss.layer5.io/uploads/default/original/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":577,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_1024x577.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":451,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_800x451.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":338,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_600x338.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_400x225.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":169,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_300x169.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/f/fb0d91678fe4d1537ce419e41efbdea7b9894ff0_2_200x112.jpeg"}],"tags":["meshery","community","meetings","layer5","hacktoberfest"],"tags_descriptions":{"meetings":""},"views":28,"like_count":1,"has_summary":false,"last_poster_username":"Sudhanshu_Dasgupta","category_id":9,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":969,"primary_group_id":null,"flair_group_id":42}]},{"id":5728,"title":"Problem on meshery-cli setup with minikube","fancy_title":"Problem on meshery-cli setup with minikube","slug":"problem-on-meshery-cli-setup-with-minikube","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2024-09-09T10:06:09.151Z","last_posted_at":"2024-09-25T15:58:24.330Z","bumped":true,"bumped_at":"2024-09-25T15:58:24.330Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt"],"tags_descriptions":{},"views":56,"like_count":0,"has_summary":false,"last_poster_username":"theBeginner86","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2943,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2912,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2853,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":117,"primary_group_id":null,"flair_group_id":null}]},{"id":5758,"title":"What's the deadline for applying to meshery mentorship program through the linux foundation portal","fancy_title":"What’s the deadline for applying to meshery mentorship program through the linux foundation portal","slug":"whats-the-deadline-for-applying-to-meshery-mentorship-program-through-the-linux-foundation-portal","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-09-15T21:25:49.593Z","last_posted_at":"2024-09-15T21:25:49.749Z","bumped":true,"bumped_at":"2024-09-15T21:25:49.749Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","community","doubt"],"tags_descriptions":{},"views":27,"like_count":0,"has_summary":false,"last_poster_username":"Guraasees_Singh","category_id":12,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2955,"primary_group_id":null,"flair_group_id":null}]},{"id":5734,"title":"Debug Problem in meshery server","fancy_title":"Debug Problem in meshery server","slug":"debug-problem-in-meshery-server","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-09-12T00:39:06.286Z","last_posted_at":"2024-09-12T00:39:06.456Z","bumped":true,"bumped_at":"2024-09-12T00:39:06.456Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":["meshery","doubt"],"tags_descriptions":{},"views":10,"like_count":0,"has_summary":false,"last_poster_username":"JianMin.Tang","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":2943,"primary_group_id":null,"flair_group_id":null}]},{"id":5708,"title":"Which projects (github repos) are included in Layer5.io internships","fancy_title":"Which projects (github repos) are included in Layer5.io internships","slug":"which-projects-github-repos-are-included-in-layer5-io-internships","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2024-09-05T08:03:21.554Z","last_posted_at":"2024-09-05T19:01:04.809Z","bumped":true,"bumped_at":"2024-09-05T19:01:04.809Z","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":45,"like_count":3,"has_summary":false,"last_poster_username":"Kunyue.Xing","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2194,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":826,"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 c7fe842c147..78bb818891a 100644 --- a/docs/_data/discuss/mesheryctl.json +++ b/docs/_data/discuss/mesheryctl.json @@ -1 +1 @@ -{"users":[{"id":2988,"username":"Pranjal_Gupta","name":"Pranjal Gupta","avatar_template":"/user_avatar/discuss.layer5.io/pranjal_gupta/{size}/2736_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":2969,"username":"weilirs","name":"Lawrence Li","avatar_template":"/user_avatar/discuss.layer5.io/weilirs/{size}/2716_2.png","trust_level":0},{"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":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","trust_level":2},{"id":2976,"username":"Raghav_Agarwal","name":"Raghav Agarwal","avatar_template":"/user_avatar/discuss.layer5.io/raghav_agarwal/{size}/2721_2.png","trust_level":1},{"id":2194,"username":"Kunyue.Xing","name":"Kunyue Xing","avatar_template":"/user_avatar/discuss.layer5.io/kunyue.xing/{size}/2670_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":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":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":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","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}/2715_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,"moderator":true,"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}],"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","kanvas","weekly-summary","ux","docs","newcomers","error","meshery-adapter","sistent","devops","kubernetes","maintainer","models","reactjs","setup-issue","announcements","cicd","components","design-review","discussion","docker-desktop","hacktoberfest","help"],"tags":[{"id":71,"name":"mesheryctl","topic_count":36,"staff":false,"description":null}],"topics":[{"id":6319,"title":"Can't find the file path for meshery designs","fancy_title":"Can’t find the file path for meshery designs","slug":"cant-find-the-file-path-for-meshery-designs","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-12-16T13:15:56.096Z","last_posted_at":"2024-12-16T13:15:56.601Z","bumped":true,"bumped_at":"2024-12-16T13:15:56.601Z","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":9,"like_count":0,"has_summary":false,"last_poster_username":"Pranjal_Gupta","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":2988,"primary_group_id":null,"flair_group_id":42}]},{"id":5991,"title":"`pattern import` - Access to this resource is unauthorized","fancy_title":"`pattern import` - Access to this resource is unauthorized","slug":"pattern-import-access-to-this-resource-is-unauthorized","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-10-31T08:16:52.839Z","last_posted_at":"2024-10-31T08:16:52.978Z","bumped":true,"bumped_at":"2024-10-31T08:16:52.978Z","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":15,"like_count":0,"has_summary":false,"last_poster_username":"weilirs","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":2969,"primary_group_id":null,"flair_group_id":null}]},{"id":5974,"title":"`mesheryctl adapter validate` \"Error: required flag(s) \"spec\" not set\"","fancy_title":"`mesheryctl adapter validate` “Error: required flag(s) “spec” not set”","slug":"mesheryctl-adapter-validate-error-required-flag-s-spec-not-set","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-10-24T10:04:54.379Z","last_posted_at":"2024-10-24T12:35:38.101Z","bumped":true,"bumped_at":"2024-10-24T12:35:38.101Z","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":10,"like_count":0,"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":2969,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5867,"title":"I created an environment but it cannot be listed","fancy_title":"I created an environment but it cannot be listed","slug":"i-created-an-environment-but-it-cannot-be-listed","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png","created_at":"2024-10-09T11:14:51.761Z","last_posted_at":"2024-10-20T05:29:07.758Z","bumped":true,"bumped_at":"2024-10-20T05:29:07.758Z","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":1319,"height":94,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":72,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png"},{"max_width":800,"max_height":800,"width":800,"height":57,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_800x57.png"},{"max_width":600,"max_height":600,"width":600,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_600x42.png"},{"max_width":400,"max_height":400,"width":400,"height":28,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_400x28.png"},{"max_width":300,"max_height":300,"width":300,"height":21,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_300x21.png"},{"max_width":200,"max_height":200,"width":200,"height":14,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_200x14.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":22,"like_count":0,"has_summary":false,"last_poster_username":"Pranjal_Gupta","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2988,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":826,"primary_group_id":null,"flair_group_id":null}]},{"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":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-03-05T21:08:15.434Z","last_posted_at":"2024-10-02T17:59:30.264Z","bumped":true,"bumped_at":"2024-10-02T17:59:30.264Z","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":162,"like_count":1,"has_summary":false,"last_poster_username":"Raghav_Agarwal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":2976,"primary_group_id":null,"flair_group_id":null}]},{"id":5642,"title":"Problems when running `./mesheryctl system start -p docker`","fancy_title":"Problems when running `./mesheryctl system start -p docker`","slug":"problems-when-running-mesheryctl-system-start-p-docker","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2024-08-28T00:46:20.475Z","last_posted_at":"2024-09-02T06:25:34.972Z","bumped":true,"bumped_at":"2024-09-02T06:25:34.972Z","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":52,"like_count":2,"has_summary":false,"last_poster_username":"Kunyue.Xing","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2194,"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":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":3,"reply_count":1,"highest_post_number":3,"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-27T23:25:42.883Z","bumped":true,"bumped_at":"2024-08-27T23:25:42.883Z","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":41,"like_count":4,"has_summary":false,"last_poster_username":"Kunyue.Xing","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2194,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent 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":85,"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":83,"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","kanvas"],"tags_descriptions":{},"views":84,"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":null}]},{"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":213,"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":null}]},{"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":309,"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":355,"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":223,"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":293,"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":434,"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":465,"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":309,"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":445,"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":394,"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":null},{"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":402,"like_count":5,"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":null},{"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":473,"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":545,"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":382,"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":689,"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":442,"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}]}]}} \ No newline at end of file +{"users":[{"id":2988,"username":"Pranjal_Gupta","name":"Pranjal Gupta","avatar_template":"/user_avatar/discuss.layer5.io/pranjal_gupta/{size}/2736_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":2969,"username":"weilirs","name":"Lawrence Li","avatar_template":"/user_avatar/discuss.layer5.io/weilirs/{size}/2716_2.png","trust_level":0},{"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":826,"username":"Yash.Sharma","name":"Yash Sharma","avatar_template":"/user_avatar/discuss.layer5.io/yash.sharma/{size}/762_2.png","trust_level":2},{"id":2976,"username":"Raghav_Agarwal","name":"Raghav Agarwal","avatar_template":"/user_avatar/discuss.layer5.io/raghav_agarwal/{size}/2721_2.png","trust_level":1},{"id":2194,"username":"Kunyue.Xing","name":"Kunyue Xing","avatar_template":"/user_avatar/discuss.layer5.io/kunyue.xing/{size}/2670_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":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":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":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","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}/2715_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,"moderator":true,"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}],"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","kanvas","weekly-summary","ux","docs","newcomers","error","meshery-adapter","sistent","devops","kubernetes","maintainer","models","reactjs","setup-issue","announcements","cicd","components","design-review","discussion","docker-desktop","hacktoberfest","help"],"tags":[{"id":71,"name":"mesheryctl","topic_count":36,"staff":false,"description":null}],"topics":[{"id":6319,"title":"Can't find the file path for meshery designs","fancy_title":"Can’t find the file path for meshery designs","slug":"cant-find-the-file-path-for-meshery-designs","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-12-16T13:15:56.096Z","last_posted_at":"2024-12-16T13:15:56.601Z","bumped":true,"bumped_at":"2024-12-16T13:15:56.601Z","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":9,"like_count":0,"has_summary":false,"last_poster_username":"Pranjal_Gupta","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":2988,"primary_group_id":null,"flair_group_id":42}]},{"id":5991,"title":"`pattern import` - Access to this resource is unauthorized","fancy_title":"`pattern import` - Access to this resource is unauthorized","slug":"pattern-import-access-to-this-resource-is-unauthorized","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-10-31T08:16:52.839Z","last_posted_at":"2024-10-31T08:16:52.978Z","bumped":true,"bumped_at":"2024-10-31T08:16:52.978Z","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":15,"like_count":0,"has_summary":false,"last_poster_username":"weilirs","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":2969,"primary_group_id":null,"flair_group_id":null}]},{"id":5974,"title":"`mesheryctl adapter validate` \"Error: required flag(s) \"spec\" not set\"","fancy_title":"`mesheryctl adapter validate` “Error: required flag(s) “spec” not set”","slug":"mesheryctl-adapter-validate-error-required-flag-s-spec-not-set","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-10-24T10:04:54.379Z","last_posted_at":"2024-10-24T12:35:38.101Z","bumped":true,"bumped_at":"2024-10-24T12:35:38.101Z","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":10,"like_count":0,"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":2969,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":3,"primary_group_id":null,"flair_group_id":42}]},{"id":5867,"title":"I created an environment but it cannot be listed","fancy_title":"I created an environment but it cannot be listed","slug":"i-created-an-environment-but-it-cannot-be-listed","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png","created_at":"2024-10-09T11:14:51.761Z","last_posted_at":"2024-10-20T05:29:07.758Z","bumped":true,"bumped_at":"2024-10-20T05:29:07.758Z","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":1319,"height":94,"url":"https://discuss.layer5.io/uploads/default/original/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":72,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_1024x72.png"},{"max_width":800,"max_height":800,"width":800,"height":57,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_800x57.png"},{"max_width":600,"max_height":600,"width":600,"height":42,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_600x42.png"},{"max_width":400,"max_height":400,"width":400,"height":28,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_400x28.png"},{"max_width":300,"max_height":300,"width":300,"height":21,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_300x21.png"},{"max_width":200,"max_height":200,"width":200,"height":14,"url":"https://discuss.layer5.io/uploads/default/optimized/2X/a/ae5785fc5dd7abf6cc22ee98e43720a512ae1b65_2_200x14.png"}],"tags":["meshery","mesheryctl"],"tags_descriptions":{},"views":22,"like_count":0,"has_summary":false,"last_poster_username":"Pranjal_Gupta","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2988,"primary_group_id":null,"flair_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":826,"primary_group_id":null,"flair_group_id":null}]},{"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":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-03-05T21:08:15.434Z","last_posted_at":"2024-10-02T17:59:30.264Z","bumped":true,"bumped_at":"2024-10-02T17:59:30.264Z","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":163,"like_count":1,"has_summary":false,"last_poster_username":"Raghav_Agarwal","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3,"primary_group_id":null,"flair_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":2976,"primary_group_id":null,"flair_group_id":null}]},{"id":5642,"title":"Problems when running `./mesheryctl system start -p docker`","fancy_title":"Problems when running `./mesheryctl system start -p docker`","slug":"problems-when-running-mesheryctl-system-start-p-docker","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2024-08-28T00:46:20.475Z","last_posted_at":"2024-09-02T06:25:34.972Z","bumped":true,"bumped_at":"2024-09-02T06:25:34.972Z","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":52,"like_count":2,"has_summary":false,"last_poster_username":"Kunyue.Xing","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2194,"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":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":3,"reply_count":1,"highest_post_number":3,"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-27T23:25:42.883Z","bumped":true,"bumped_at":"2024-08-27T23:25:42.883Z","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":41,"like_count":4,"has_summary":false,"last_poster_username":"Kunyue.Xing","category_id":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2194,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent 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":85,"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":83,"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","kanvas"],"tags_descriptions":{},"views":84,"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":null}]},{"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":213,"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":null}]},{"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":309,"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":355,"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":223,"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":293,"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":434,"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":465,"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":309,"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":445,"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":394,"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":null},{"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":402,"like_count":5,"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":null},{"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":473,"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":545,"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":382,"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":689,"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":442,"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}]}]}} \ No newline at end of file diff --git a/docs/_meetings/week-of-12-30-2024/Sagnik-Pal.md b/docs/_meetings/week-of-12-30-2024/Sagnik-Pal.md new file mode 100644 index 00000000000..883a348eecc --- /dev/null +++ b/docs/_meetings/week-of-12-30-2024/Sagnik-Pal.md @@ -0,0 +1,7 @@ +Name: Sagnik Pal + +Bio: Heavily interested in anything related to golang, gRPC, GraphQL, Docker, Kubernetes, Linux, Cloud-Native + +Github: "https://github.com/palSagnik" + +LinkedIn: "https://www.linkedin.com/in/sagnik-pal-iitism/" \ No newline at end of file diff --git a/go.mod b/go.mod index 5079eb2a216..ff47914e60c 100644 --- a/go.mod +++ b/go.mod @@ -17,6 +17,7 @@ require ( cuelang.org/go v0.6.0 fortio.org/fortio v1.66.2 github.com/99designs/gqlgen v0.17.45 + github.com/Masterminds/semver/v3 v3.2.1 github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 github.com/briandowns/spinner v1.23.1 github.com/docker/cli v24.0.6+incompatible @@ -107,7 +108,6 @@ require ( github.com/BurntSushi/toml v1.3.2 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect - github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Masterminds/squirrel v1.5.4 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/server/handlers/policy_relationship_handler.go b/server/handlers/policy_relationship_handler.go index 66ba5d0ac30..de3578bc254 100644 --- a/server/handlers/policy_relationship_handler.go +++ b/server/handlers/policy_relationship_handler.go @@ -8,6 +8,7 @@ import ( "strings" "time" + "github.com/Masterminds/semver/v3" "github.com/gofrs/uuid" "github.com/gorilla/mux" "github.com/layer5io/meshery/server/models" @@ -97,7 +98,6 @@ func (h *Handler) EvaluateRelationshipPolicy( _ = 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) unknownComponents := processEvaluationResponse(h.registryManager, relationshipPolicyEvalPayload, &evaluationResponse) if len(unknownComponents) > 0 { event := events.NewEvent().FromUser(userUUID).FromSystem(*h.SystemID).WithCategory("relationship").WithAction("evaluation").WithSeverity(events.Informational).ActedUpon(patternUUID).WithDescription(fmt.Sprintf("Relationship evaluation for \"%s\" at version \"%s\" resulted in the addition of new components but they are not registered inside the registry.", evaluationResponse.Design.Name, evaluationResponse.Design.Version)).WithMetadata(map[string]interface{}{ @@ -120,6 +120,15 @@ func processEvaluationResponse(registry *registry.RegistryManager, evalPayload p compsUpdated := []component.ComponentDefinition{} compsAdded := []component.ComponentDefinition{} + // Bump the version of design + oldVersion, versionParseErr := semver.NewVersion(evalResponse.Design.Version) + if versionParseErr != nil { + oldVersion = semver.MustParse("0.0.0") + } + + newVersion := oldVersion.IncPatch() + evalResponse.Design.Version = newVersion.String() + // components which were added by the evaluator based on the relationship definition, but doesn't exist in the registry. unknownComponents := []*component.ComponentDefinition{} @@ -151,7 +160,6 @@ func processEvaluationResponse(registry *registry.RegistryManager, evalPayload p } _component, _ := entities[0].(*component.ComponentDefinition) - _c.Configuration = core.Format.Prettify(_c.Configuration, false) _component.Id = _c.Id if _c.DisplayName != "" { _component.DisplayName = _c.DisplayName @@ -166,8 +174,6 @@ func processEvaluationResponse(registry *registry.RegistryManager, evalPayload p for _, component := range evalResponse.Trace.ComponentsUpdated { _c := component - - _c.Configuration = core.Format.Prettify(_c.Configuration, false) compsUpdated = append(compsUpdated, _c) } diff --git a/server/meshmodel/aws-cloudfront-controller/v1.0.1/v1.0.0/model.json b/server/meshmodel/aws-cloudfront-controller/v1.0.1/v1.0.0/model.json index 7a5f1a41c88..22111bb2d05 100644 --- a/server/meshmodel/aws-cloudfront-controller/v1.0.1/v1.0.0/model.json +++ b/server/meshmodel/aws-cloudfront-controller/v1.0.1/v1.0.0/model.json @@ -7,12 +7,12 @@ "metadata": { "capabilities": null, "isAnnotation": false, - "primaryColor": "#8C4FFF", + "primaryColor": "#ED7100", "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\" viewBox=\"0 0 40 40\" height=\"20\" width=\"20\"\u003e \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Icon-Architecture/32/Arch_Amazon-CloudFront_32\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"\u003e \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Icon-Architecture-BG/32/Networking-Content-Delivery\" fill=\"#8C4FFF\"\u003e \u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\u003e\u003c/rect\u003e \u003c/g\u003e \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M28,26.4968343 C28,25.6694852 27.327,24.9962012 26.5,24.9962012 C25.673,24.9962012 25,25.6694852 25,26.4968343 C25,27.3241834 25.673,27.9974675 26.5,27.9974675 C27.327,27.9974675 28,27.3241834 28,26.4968343 L28,26.4968343 Z M29,26.4968343 C29,27.875416 27.879,28.9978895 26.5,28.9978895 C25.121,28.9978895 24,27.875416 24,26.4968343 C24,25.1182527 25.121,23.9957791 26.5,23.9957791 C27.879,23.9957791 29,25.1182527 29,26.4968343 L29,26.4968343 Z M15,18.4934576 C15,17.6661085 14.327,16.9928244 13.5,16.9928244 C12.673,16.9928244 12,17.6661085 12,18.4934576 C12,19.3208067 12.673,19.9940907 13.5,19.9940907 C14.327,19.9940907 15,19.3208067 15,18.4934576 L15,18.4934576 Z M16,18.4934576 C16,19.8720392 14.879,20.9945128 13.5,20.9945128 C12.121,20.9945128 11,19.8720392 11,18.4934576 C11,17.1148759 12.121,15.9924024 13.5,15.9924024 C14.879,15.9924024 16,17.1148759 16,18.4934576 L16,18.4934576 Z M20,10.4900808 C20,11.3174299 20.673,11.990714 21.5,11.990714 C22.327,11.990714 23,11.3174299 23,10.4900808 C23,9.66273178 22.327,8.98944771 21.5,8.98944771 C20.673,8.98944771 20,9.66273178 20,10.4900808 L20,10.4900808 Z M19,10.4900808 C19,9.11149921 20.121,7.98902562 21.5,7.98902562 C22.879,7.98902562 24,9.11149921 24,10.4900808 C24,11.8686625 22.879,12.9911361 21.5,12.9911361 C20.121,12.9911361 19,11.8686625 19,10.4900808 L19,10.4900808 Z M33,19.9940907 C33,15.3561339 30.515,11.0643231 26.506,8.74334388 C25.785,8.8894055 25.09,9.0884895 24.226,9.40062119 L23.886,8.46022442 C24.332,8.29915647 24.732,8.16810117 25.119,8.0560539 C23.512,7.36376181 21.771,6.98860353 20,6.98860353 C19.156,6.98860353 18.325,7.07564025 17.513,7.23470736 C18.1,7.57785214 18.621,7.92099692 19.128,8.30615942 L18.524,9.10349583 C17.809,8.56026663 17.067,8.10207332 16.098,7.59385889 C11.188,9.1385106 7.652,13.4703383 7.091,18.5564842 C8.121,18.3483964 9.109,18.2353487 10.207,18.2073369 L10.232,19.207759 C9.081,19.2367712 8.094,19.3588227 7.014,19.5959227 C7.01,19.7279784 7,19.8630354 7,19.9940907 C7,24.3289196 9.146,28.3246055 12.676,30.7296202 C12.049,28.8608317 11.726,27.0920855 11.726,25.3693586 C11.726,24.3849433 11.895,23.5766022 12.073,22.7212413 L12.197,22.1189872 L13.178,22.3120687 L13.053,22.9263279 C12.877,23.7646816 12.726,24.4879868 12.726,25.3693586 C12.726,27.3211821 13.158,29.3420347 14.028,31.53496 C15.889,32.5003673 17.895,32.9995779 20,32.9995779 C21.379,32.9995779 22.724,32.7784846 24.006,32.3563065 C24.508,31.3668891 24.881,30.4294936 25.195,29.3470369 L26.156,29.6261546 C25.928,30.4144872 25.666,31.1277882 25.355,31.8370874 C26.159,31.4759351 26.919,31.027746 27.634,30.5065261 C27.461,30.0813467 27.284,29.6571677 27.08,29.2469946 L27.975,28.8008064 C28.146,29.1439512 28.288,29.5021023 28.438,29.8552513 C31.335,27.3772058 33,23.8287086 33,19.9940907 L33,19.9940907 Z M34,19.9940907 C34,24.3589323 32.018,28.3966359 28.56,31.072765 C27.34,32.0211651 25.98,32.7534741 24.518,33.2456817 C23.078,33.7458928 21.557,34 20,34 C17.7,34 15.416,33.4267581 13.394,32.3413002 C8.833,29.9002703 6,25.1692742 6,19.9940907 C6,19.7099708 6.007,19.4268514 6.029,19.1487341 C6.37,13.3032678 10.377,8.24513368 16,6.57142752 C19.527,5.50797883 23.589,5.93916075 26.842,7.77893698 C31.257,10.2519804 34,14.9329554 34,19.9940907 L34,19.9940907 Z M18.657,12.7220225 L17.999,11.9687047 C16.879,12.9471175 16.007,13.9855556 14.989,15.5552179 L15.827,16.0994475 C16.792,14.6138207 17.611,13.6354079 18.657,12.7220225 L18.657,12.7220225 Z M16.812,20.1531578 C19.108,20.9414904 21.111,22.2000214 23.117,24.1138289 L23.807,23.3905237 C21.694,21.3726724 19.574,20.0441118 17.137,19.2067585 L16.812,20.1531578 Z M23.823,13.3252771 C25.699,16.1874847 26.756,19.3298104 26.963,22.6642173 L25.965,22.7262435 C25.769,19.5679109 24.767,16.5896543 22.987,13.8735084 L23.823,13.3252771 Z\" id=\"Amazon-CloudFront_Icon_32_Squid\" fill=\"#FFFFFF\"\u003e\u003c/path\u003e \u003c/g\u003e\u003c/svg\u003e", + "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 64 64\" version=\"1.1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\"\u003e\n \u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eIcon-Architecture/48/Arch_Amazon-CloudFront_48\u003c/title\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Icon-Architecture/48/Arch_Amazon-CloudFront_48\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Icon-Architecture-BG/48/Networking-Content-Delivery\" fill=\"#8C4FFF\"\u003e\n \u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Rectangle\" x=\"0\" y=\"0\" width=\"64\" height=\"64\"\u003e\u003c/rect\u003e\n \u003c/g\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M41.5,43.5 C40.397,43.5 39.5,42.603 39.5,41.5 C39.5,40.397 40.397,39.5 41.5,39.5 C42.603,39.5 43.5,40.397 43.5,41.5 C43.5,42.603 42.603,43.5 41.5,43.5 L41.5,43.5 Z M41.5,37.5 C39.294,37.5 37.5,39.294 37.5,41.5 C37.5,43.706 39.294,45.5 41.5,45.5 C43.706,45.5 45.5,43.706 45.5,41.5 C45.5,39.294 43.706,37.5 41.5,37.5 L41.5,37.5 Z M22.5,32.5 C21.397,32.5 20.5,31.603 20.5,30.5 C20.5,29.397 21.397,28.5 22.5,28.5 C23.603,28.5 24.5,29.397 24.5,30.5 C24.5,31.603 23.603,32.5 22.5,32.5 L22.5,32.5 Z M22.5,26.5 C20.294,26.5 18.5,28.294 18.5,30.5 C18.5,32.706 20.294,34.5 22.5,34.5 C24.706,34.5 26.5,32.706 26.5,30.5 C26.5,28.294 24.706,26.5 22.5,26.5 L22.5,26.5 Z M45.389,47.124 C45.168,46.607 44.936,46.094 44.685,45.591 L42.896,46.486 C43.17,47.035 43.42,47.599 43.656,48.165 C42.82,48.762 41.943,49.288 41.028,49.74 C41.384,48.865 41.694,47.975 41.974,47.012 L40.054,46.454 C39.564,48.134 38.985,49.581 38.184,51.133 C36.357,51.698 34.452,52 32.5,52 C29.465,52 26.567,51.314 23.871,49.976 C22.503,46.615 21.838,43.534 21.838,40.559 C21.838,39.267 22.063,38.196 22.322,36.956 C22.386,36.652 22.45,36.343 22.514,36.024 L20.551,35.638 C20.49,35.949 20.427,36.25 20.365,36.545 C20.094,37.838 19.838,39.06 19.838,40.559 C19.838,43.074 20.274,45.644 21.154,48.354 C16.072,44.724 13,38.854 13,32.5 C13,32.389 13.01,32.273 13.012,32.161 C14.642,31.799 16.123,31.614 17.854,31.571 L17.804,29.572 C16.169,29.612 14.694,29.779 13.163,30.084 C14.081,22.683 19.212,16.394 26.323,14.019 C27.873,14.818 29.02,15.524 30.135,16.37 L31.344,14.776 C30.646,14.248 29.934,13.771 29.146,13.299 C30.244,13.108 31.363,13 32.5,13 C35.032,13 37.532,13.494 39.849,14.439 C39.342,14.593 38.82,14.763 38.243,14.971 L38.923,16.852 C40.316,16.349 41.408,16.04 42.571,15.821 C48.399,19.341 52,25.667 52,32.5 C52,38.156 49.605,43.416 45.389,47.124 L45.389,47.124 Z M43.008,13.749 C39.826,11.95 36.192,11 32.5,11 C30.392,11 28.324,11.301 26.357,11.895 C17.723,14.464 11.568,22.23 11.045,31.196 C11.01,31.625 11,32.062 11,32.5 C11,40.444 15.352,47.707 22.354,51.455 C25.459,53.12 28.968,54 32.5,54 C34.892,54 37.229,53.61 39.437,52.843 C41.684,52.086 43.773,50.963 45.646,49.507 C50.955,45.399 54,39.2 54,32.5 C54,24.732 49.787,17.546 43.008,13.749 L43.008,13.749 Z M38.384,37.411 L37.003,38.858 C34.022,36.015 31.047,34.146 27.637,32.975 L28.287,31.083 C31.979,32.351 35.188,34.362 38.384,37.411 L38.384,37.411 Z M38.444,22.364 C41.282,26.692 42.88,31.444 43.193,36.488 L41.197,36.612 C40.905,31.919 39.417,27.495 36.772,23.46 L38.444,22.364 Z M26.451,26.797 L24.773,25.708 C26.316,23.332 27.639,21.758 29.336,20.278 L30.65,21.786 C29.103,23.135 27.886,24.587 26.451,26.797 L26.451,26.797 Z M34.5,16.5 C35.603,16.5 36.5,17.397 36.5,18.5 C36.5,19.603 35.603,20.5 34.5,20.5 C33.397,20.5 32.5,19.603 32.5,18.5 C32.5,17.397 33.397,16.5 34.5,16.5 L34.5,16.5 Z M34.5,22.5 C36.706,22.5 38.5,20.706 38.5,18.5 C38.5,16.294 36.706,14.5 34.5,14.5 C32.294,14.5 30.5,16.294 30.5,18.5 C30.5,20.706 32.294,22.5 34.5,22.5 L34.5,22.5 Z\" id=\"Amazon-CloudFront_Icon_48_Squid\" fill=\"#FFFFFF\"\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\" viewBox=\"0 0 40 40\" height=\"20\" width=\"20\"\u003e \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Icon-Architecture/32/Arch_Amazon-CloudFront_32\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"\u003e \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M28,26.4968343 C28,25.6694852 27.327,24.9962012 26.5,24.9962012 C25.673,24.9962012 25,25.6694852 25,26.4968343 C25,27.3241834 25.673,27.9974675 26.5,27.9974675 C27.327,27.9974675 28,27.3241834 28,26.4968343 L28,26.4968343 Z M29,26.4968343 C29,27.875416 27.879,28.9978895 26.5,28.9978895 C25.121,28.9978895 24,27.875416 24,26.4968343 C24,25.1182527 25.121,23.9957791 26.5,23.9957791 C27.879,23.9957791 29,25.1182527 29,26.4968343 L29,26.4968343 Z M15,18.4934576 C15,17.6661085 14.327,16.9928244 13.5,16.9928244 C12.673,16.9928244 12,17.6661085 12,18.4934576 C12,19.3208067 12.673,19.9940907 13.5,19.9940907 C14.327,19.9940907 15,19.3208067 15,18.4934576 L15,18.4934576 Z M16,18.4934576 C16,19.8720392 14.879,20.9945128 13.5,20.9945128 C12.121,20.9945128 11,19.8720392 11,18.4934576 C11,17.1148759 12.121,15.9924024 13.5,15.9924024 C14.879,15.9924024 16,17.1148759 16,18.4934576 L16,18.4934576 Z M20,10.4900808 C20,11.3174299 20.673,11.990714 21.5,11.990714 C22.327,11.990714 23,11.3174299 23,10.4900808 C23,9.66273178 22.327,8.98944771 21.5,8.98944771 C20.673,8.98944771 20,9.66273178 20,10.4900808 L20,10.4900808 Z M19,10.4900808 C19,9.11149921 20.121,7.98902562 21.5,7.98902562 C22.879,7.98902562 24,9.11149921 24,10.4900808 C24,11.8686625 22.879,12.9911361 21.5,12.9911361 C20.121,12.9911361 19,11.8686625 19,10.4900808 L19,10.4900808 Z M33,19.9940907 C33,15.3561339 30.515,11.0643231 26.506,8.74334388 C25.785,8.8894055 25.09,9.0884895 24.226,9.40062119 L23.886,8.46022442 C24.332,8.29915647 24.732,8.16810117 25.119,8.0560539 C23.512,7.36376181 21.771,6.98860353 20,6.98860353 C19.156,6.98860353 18.325,7.07564025 17.513,7.23470736 C18.1,7.57785214 18.621,7.92099692 19.128,8.30615942 L18.524,9.10349583 C17.809,8.56026663 17.067,8.10207332 16.098,7.59385889 C11.188,9.1385106 7.652,13.4703383 7.091,18.5564842 C8.121,18.3483964 9.109,18.2353487 10.207,18.2073369 L10.232,19.207759 C9.081,19.2367712 8.094,19.3588227 7.014,19.5959227 C7.01,19.7279784 7,19.8630354 7,19.9940907 C7,24.3289196 9.146,28.3246055 12.676,30.7296202 C12.049,28.8608317 11.726,27.0920855 11.726,25.3693586 C11.726,24.3849433 11.895,23.5766022 12.073,22.7212413 L12.197,22.1189872 L13.178,22.3120687 L13.053,22.9263279 C12.877,23.7646816 12.726,24.4879868 12.726,25.3693586 C12.726,27.3211821 13.158,29.3420347 14.028,31.53496 C15.889,32.5003673 17.895,32.9995779 20,32.9995779 C21.379,32.9995779 22.724,32.7784846 24.006,32.3563065 C24.508,31.3668891 24.881,30.4294936 25.195,29.3470369 L26.156,29.6261546 C25.928,30.4144872 25.666,31.1277882 25.355,31.8370874 C26.159,31.4759351 26.919,31.027746 27.634,30.5065261 C27.461,30.0813467 27.284,29.6571677 27.08,29.2469946 L27.975,28.8008064 C28.146,29.1439512 28.288,29.5021023 28.438,29.8552513 C31.335,27.3772058 33,23.8287086 33,19.9940907 L33,19.9940907 Z M34,19.9940907 C34,24.3589323 32.018,28.3966359 28.56,31.072765 C27.34,32.0211651 25.98,32.7534741 24.518,33.2456817 C23.078,33.7458928 21.557,34 20,34 C17.7,34 15.416,33.4267581 13.394,32.3413002 C8.833,29.9002703 6,25.1692742 6,19.9940907 C6,19.7099708 6.007,19.4268514 6.029,19.1487341 C6.37,13.3032678 10.377,8.24513368 16,6.57142752 C19.527,5.50797883 23.589,5.93916075 26.842,7.77893698 C31.257,10.2519804 34,14.9329554 34,19.9940907 L34,19.9940907 Z M18.657,12.7220225 L17.999,11.9687047 C16.879,12.9471175 16.007,13.9855556 14.989,15.5552179 L15.827,16.0994475 C16.792,14.6138207 17.611,13.6354079 18.657,12.7220225 L18.657,12.7220225 Z M16.812,20.1531578 C19.108,20.9414904 21.111,22.2000214 23.117,24.1138289 L23.807,23.3905237 C21.694,21.3726724 19.574,20.0441118 17.137,19.2067585 L16.812,20.1531578 Z M23.823,13.3252771 C25.699,16.1874847 26.756,19.3298104 26.963,22.6642173 L25.965,22.7262435 C25.769,19.5679109 24.767,16.5896543 22.987,13.8735084 L23.823,13.3252771 Z\" id=\"Amazon-CloudFront_Icon_32_Squid\" fill=\"#FFFFFF\"\u003e\u003c/path\u003e \u003c/g\u003e\u003c/svg\u003e" + "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 64 64\" version=\"1.1\" xmlns:_xmlns=\"xmlns\" _xmlns:xlink=\"http://www.w3.org/1999/xlink\"\u003e\n \u003ctitle xmlns=\"http://www.w3.org/2000/svg\"\u003eIcon-Architecture/48/Arch_Amazon-CloudFront_48\u003c/title\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Icon-Architecture/48/Arch_Amazon-CloudFront_48\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"\u003e\n \u003cg xmlns=\"http://www.w3.org/2000/svg\" id=\"Icon-Architecture-BG/48/Networking-Content-Delivery\" fill=\"#8C4FFF\"\u003e\n \u003crect xmlns=\"http://www.w3.org/2000/svg\" id=\"Rectangle\" x=\"0\" y=\"0\" width=\"64\" height=\"64\"\u003e\u003c/rect\u003e\n \u003c/g\u003e\n \u003cpath xmlns=\"http://www.w3.org/2000/svg\" d=\"M41.5,43.5 C40.397,43.5 39.5,42.603 39.5,41.5 C39.5,40.397 40.397,39.5 41.5,39.5 C42.603,39.5 43.5,40.397 43.5,41.5 C43.5,42.603 42.603,43.5 41.5,43.5 L41.5,43.5 Z M41.5,37.5 C39.294,37.5 37.5,39.294 37.5,41.5 C37.5,43.706 39.294,45.5 41.5,45.5 C43.706,45.5 45.5,43.706 45.5,41.5 C45.5,39.294 43.706,37.5 41.5,37.5 L41.5,37.5 Z M22.5,32.5 C21.397,32.5 20.5,31.603 20.5,30.5 C20.5,29.397 21.397,28.5 22.5,28.5 C23.603,28.5 24.5,29.397 24.5,30.5 C24.5,31.603 23.603,32.5 22.5,32.5 L22.5,32.5 Z M22.5,26.5 C20.294,26.5 18.5,28.294 18.5,30.5 C18.5,32.706 20.294,34.5 22.5,34.5 C24.706,34.5 26.5,32.706 26.5,30.5 C26.5,28.294 24.706,26.5 22.5,26.5 L22.5,26.5 Z M45.389,47.124 C45.168,46.607 44.936,46.094 44.685,45.591 L42.896,46.486 C43.17,47.035 43.42,47.599 43.656,48.165 C42.82,48.762 41.943,49.288 41.028,49.74 C41.384,48.865 41.694,47.975 41.974,47.012 L40.054,46.454 C39.564,48.134 38.985,49.581 38.184,51.133 C36.357,51.698 34.452,52 32.5,52 C29.465,52 26.567,51.314 23.871,49.976 C22.503,46.615 21.838,43.534 21.838,40.559 C21.838,39.267 22.063,38.196 22.322,36.956 C22.386,36.652 22.45,36.343 22.514,36.024 L20.551,35.638 C20.49,35.949 20.427,36.25 20.365,36.545 C20.094,37.838 19.838,39.06 19.838,40.559 C19.838,43.074 20.274,45.644 21.154,48.354 C16.072,44.724 13,38.854 13,32.5 C13,32.389 13.01,32.273 13.012,32.161 C14.642,31.799 16.123,31.614 17.854,31.571 L17.804,29.572 C16.169,29.612 14.694,29.779 13.163,30.084 C14.081,22.683 19.212,16.394 26.323,14.019 C27.873,14.818 29.02,15.524 30.135,16.37 L31.344,14.776 C30.646,14.248 29.934,13.771 29.146,13.299 C30.244,13.108 31.363,13 32.5,13 C35.032,13 37.532,13.494 39.849,14.439 C39.342,14.593 38.82,14.763 38.243,14.971 L38.923,16.852 C40.316,16.349 41.408,16.04 42.571,15.821 C48.399,19.341 52,25.667 52,32.5 C52,38.156 49.605,43.416 45.389,47.124 L45.389,47.124 Z M43.008,13.749 C39.826,11.95 36.192,11 32.5,11 C30.392,11 28.324,11.301 26.357,11.895 C17.723,14.464 11.568,22.23 11.045,31.196 C11.01,31.625 11,32.062 11,32.5 C11,40.444 15.352,47.707 22.354,51.455 C25.459,53.12 28.968,54 32.5,54 C34.892,54 37.229,53.61 39.437,52.843 C41.684,52.086 43.773,50.963 45.646,49.507 C50.955,45.399 54,39.2 54,32.5 C54,24.732 49.787,17.546 43.008,13.749 L43.008,13.749 Z M38.384,37.411 L37.003,38.858 C34.022,36.015 31.047,34.146 27.637,32.975 L28.287,31.083 C31.979,32.351 35.188,34.362 38.384,37.411 L38.384,37.411 Z M38.444,22.364 C41.282,26.692 42.88,31.444 43.193,36.488 L41.197,36.612 C40.905,31.919 39.417,27.495 36.772,23.46 L38.444,22.364 Z M26.451,26.797 L24.773,25.708 C26.316,23.332 27.639,21.758 29.336,20.278 L30.65,21.786 C29.103,23.135 27.886,24.587 26.451,26.797 L26.451,26.797 Z M34.5,16.5 C35.603,16.5 36.5,17.397 36.5,18.5 C36.5,19.603 35.603,20.5 34.5,20.5 C33.397,20.5 32.5,19.603 32.5,18.5 C32.5,17.397 33.397,16.5 34.5,16.5 L34.5,16.5 Z M34.5,22.5 C36.706,22.5 38.5,20.706 38.5,18.5 C38.5,16.294 36.706,14.5 34.5,14.5 C32.294,14.5 30.5,16.294 30.5,18.5 C30.5,20.706 32.294,22.5 34.5,22.5 L34.5,22.5 Z\" id=\"Amazon-CloudFront_Icon_48_Squid\" fill=\"#FFFFFF\"\u003e\u003c/path\u003e\n \u003c/g\u003e\n\u003c/svg\u003e" }, "model": { "version": "v1.0.1" @@ -34,7 +34,7 @@ "connection_id": "00000000-0000-0000-0000-000000000000", "schemaVersion": "models.meshery.io/v1beta1", "status": "enabled", - "subCategory": "Networking Content Delivery", + "subCategory": "Content Delivery Network", "version": "v1.0.0", "components": null, "relationships": null, diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Alertmanager.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Alertmanager.json new file mode 100644 index 00000000000..760a391ae2f --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Alertmanager.json @@ -0,0 +1,197 @@ +{ + "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": "Alertmanager", + "schema": "{\n \"description\": \"The `Alertmanager` custom resource definition (CRD) defines a desired [Alertmanager](https://prometheus.io/docs/alerting) setup to run in a Kubernetes cluster. It allows to specify many options such as the number of replicas, persistent storage and many more.\\n\\nFor each `Alertmanager` resource, the Operator deploys a `StatefulSet` in the same namespace. When there are two or more configured replicas, the Operator runs the Alertmanager instances in high-availability mode.\\n\\nThe resource defines via label and namespace selectors which `AlertmanagerConfig` objects should be associated to the deployed Alertmanager instances.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the Alertmanager cluster. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalPeers\": {\n \"description\": \"AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"alertmanagerConfigMatcherStrategy\": {\n \"description\": \"AlertmanagerConfigMatcherStrategy defines how AlertmanagerConfig objects\\nprocess incoming alerts.\",\n \"properties\": {\n \"type\": {\n \"default\": \"OnNamespace\",\n \"description\": \"AlertmanagerConfigMatcherStrategyType defines the strategy used by\\nAlertmanagerConfig objects to match alerts in the routes and inhibition\\nrules.\\n\\nThe default value is `OnNamespace`.\",\n \"enum\": [\n \"OnNamespace\",\n \"None\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"alertmanagerConfigNamespaceSelector\": {\n \"description\": \"Namespaces to be selected for AlertmanagerConfig discovery. If nil, only\\ncheck own 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 \"alertmanagerConfigSelector\": {\n \"description\": \"AlertmanagerConfigs to be selected for to merge and configure Alertmanager with.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"alertmanagerConfiguration\": {\n \"description\": \"alertmanagerConfiguration specifies the configuration of Alertmanager.\\n\\nIf defined, it takes precedence over the `configSecret` field.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"properties\": {\n \"global\": {\n \"description\": \"Defines the global parameters of the Alertmanager configuration.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the Alertmanager\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"opsGenieApiKey\": {\n \"description\": \"The default OpsGenie API 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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"opsGenieApiUrl\": {\n \"description\": \"The default OpsGenie API URL.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"pagerdutyUrl\": {\n \"description\": \"The default Pagerduty URL.\",\n \"type\": \"string\"\n },\n \"resolveTimeout\": {\n \"description\": \"ResolveTimeout is the default value used by alertmanager if the alert does\\nnot include EndsAt, after this time passes it can declare the alert as resolved if it has not been updated.\\nThis has no impact on alerts from Prometheus, as they always include EndsAt.\",\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 \"slackApiUrl\": {\n \"description\": \"The default Slack API URL.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"smtp\": {\n \"description\": \"Configures global SMTP parameters.\",\n \"properties\": {\n \"authIdentity\": {\n \"description\": \"SMTP Auth using PLAIN\",\n \"type\": \"string\"\n },\n \"authPassword\": {\n \"description\": \"SMTP Auth using LOGIN and PLAIN.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authSecret\": {\n \"description\": \"SMTP Auth using CRAM-MD5.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authUsername\": {\n \"description\": \"SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server.\",\n \"type\": \"string\"\n },\n \"from\": {\n \"description\": \"The default SMTP From header field.\",\n \"type\": \"string\"\n },\n \"hello\": {\n \"description\": \"The default hostname to identify to the SMTP server.\",\n \"type\": \"string\"\n },\n \"requireTLS\": {\n \"description\": \"The default SMTP TLS requirement.\\nNote that Go does not support unencrypted connections to remote SMTP endpoints.\",\n \"type\": \"boolean\"\n },\n \"smartHost\": {\n \"description\": \"The default SMTP smarthost used for sending emails.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Defines the host's address, it can be a DNS name or a literal IP address.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Defines the host's port, it can be a literal port number or a port name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"host\",\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the AlertmanagerConfig resource which is used to generate the Alertmanager configuration.\\nIt must be defined in the same namespace as the Alertmanager object.\\nThe operator will not enforce a `namespace` label for routes and inhibition rules.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"Custom notification templates.\",\n \"items\": {\n \"description\": \"SecretOrConfigMap allows to specify data as a Secret or ConfigMap. Fields are mutually exclusive.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod.\\nIf the service account has `automountServiceAccountToken: true`, set the field to `false` to opt out of automounting API credentials.\",\n \"type\": \"boolean\"\n },\n \"baseImage\": {\n \"description\": \"Base image that is used to deploy pods, without tag.\\nDeprecated: use 'image' instead.\",\n \"type\": \"string\"\n },\n \"clusterAdvertiseAddress\": {\n \"description\": \"ClusterAdvertiseAddress is the explicit address to advertise in cluster.\\nNeeds to be provided for non RFC1918 [1] (public) addresses.\\n[1] RFC1918: https://tools.ietf.org/html/rfc1918\",\n \"type\": \"string\"\n },\n \"clusterGossipInterval\": {\n \"description\": \"Interval between gossip attempts.\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"clusterLabel\": {\n \"description\": \"Defines the identifier that uniquely identifies the Alertmanager cluster.\\nYou should only set it when the Alertmanager cluster includes Alertmanager instances which are external to this Alertmanager resource. In practice, the addresses of the external instances are provided via the `.spec.additionalPeers` field.\",\n \"type\": \"string\"\n },\n \"clusterPeerTimeout\": {\n \"description\": \"Timeout for cluster peering.\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"clusterPushpullInterval\": {\n \"description\": \"Interval between pushpull attempts.\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"configMaps\": {\n \"description\": \"ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager\\nobject, which shall be mounted into the Alertmanager Pods.\\nEach ConfigMap is added to the StatefulSet definition as a volume named `configmap-\\u003cconfigmap-name\\u003e`.\\nThe ConfigMaps are mounted into `/etc/alertmanager/configmaps/\\u003cconfigmap-name\\u003e` in the 'alertmanager' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"configSecret\": {\n \"description\": \"ConfigSecret is the name of a Kubernetes Secret in the same namespace as the\\nAlertmanager object, which contains the configuration for this Alertmanager\\ninstance. If empty, it defaults to `alertmanager-\\u003calertmanager-name\\u003e`.\\n\\nThe Alertmanager configuration should be available under the\\n`alertmanager.yaml` key. Additional keys from the original secret are\\ncopied to the generated secret and mounted into the\\n`/etc/alertmanager/config` directory in the `alertmanager` container.\\n\\nIf either the secret or the `alertmanager.yaml` key is missing, the\\noperator provisions a minimal Alertmanager configuration with one empty\\nreceiver (effectively dropping alert notifications).\",\n \"type\": \"string\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers. This is meant to\\nallow adding an authentication proxy to an Alertmanager pod.\\nContainers described here modify an operator generated container if they\\nshare the same name and modifications are done via a strategic merge\\npatch. The current container names are: `alertmanager` and\\n`config-reloader`. Overriding containers is entirely outside the scope\\nof what the maintainers will support and by doing so, you accept that\\nthis behaviour may break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enableFeatures\": {\n \"description\": \"Enable access to Alertmanager feature flags. By default, no features are enabled.\\nEnabling features which are disabled by default is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept\\nthat this behaviour may break at any time without notice.\\n\\nIt requires Alertmanager \\u003e= 0.27.0.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"externalUrl\": {\n \"description\": \"The external URL the Alertmanager instances will be available under. This is\\nnecessary to generate correct URLs. This is necessary if Alertmanager is not\\nserved from root of a DNS name.\",\n \"type\": \"string\"\n },\n \"forceEnableClusterMode\": {\n \"description\": \"ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.\\nUse case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"Pods' hostAliases configuration\",\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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"image\": {\n \"description\": \"Image if specified has precedence over baseImage, tag and sha\\ncombinations. Specifying the version is still necessary to ensure the\\nPrometheus Operator knows what version of Alertmanager is being\\nconfigured.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'alertmanager', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to secrets in the same namespace\\nto use for pulling prometheus and alertmanager images from registries\\nsee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows adding initContainers to the pod definition. Those can be used to e.g.\\nfetch secrets for injection into the Alertmanager configuration from external sources. Any\\nerrors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nInitContainers described here modify an operator\\ngenerated init containers if they share the same name and modifications are\\ndone via a strategic merge patch. The current init container name is:\\n`init-config-reloader`. Overriding init containers is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept that\\nthis behaviour may break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"listenLocal\": {\n \"description\": \"ListenLocal makes the Alertmanager server listen on loopback, so that it\\ndoes not bind against the Pod IP. Note this is only for the Alertmanager\\nUI, not the gossip communication.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for Alertmanager to be configured with.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for Alertmanager to be configured with.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\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)\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Define which Nodes the Pods are scheduled on.\",\n \"type\": \"object\"\n },\n \"paused\": {\n \"description\": \"If set to true all actions on the underlying managed objects are not\\ngoint to be performed, except for delete actions.\",\n \"type\": \"boolean\"\n },\n \"persistentVolumeClaimRetentionPolicy\": {\n \"description\": \"The field controls if and how PVCs are deleted during the lifecycle of a StatefulSet.\\nThe default behavior is all PVCs are retained.\\nThis is an alpha field from kubernetes 1.23 until 1.26 and a beta field from 1.26.\\nIt requires enabling the StatefulSetAutoDeletePVC feature gate.\",\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 \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the Alertmanager pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"alertmanager\\\" label, set to the name of the Alertmanager instance.\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the Alertmanager instance.\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"alertmanager\\\".\\n* \\\"app.kubernetes.io/version\\\" label, set to the Alertmanager version.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"alertmanager\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefaults to `web`.\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Size is the expected size of the alertmanager cluster. The controller will\\neventually make the size of the running cluster equal to the expected\\nsize.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Define resources requests and limits for single Pods.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"retention\": {\n \"default\": \"120h\",\n \"description\": \"Time duration Alertmanager shall retain data for. Default is '120h',\\nand must match the regular expression `[0-9]+(ms|s|m|h)` (milliseconds seconds minutes hours).\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"routePrefix\": {\n \"description\": \"The route prefix Alertmanager registers HTTP handlers for. This is useful,\\nif using ExternalURL and a proxy is rewriting HTTP routes of a request,\\nand the actual ExternalURL is still true, but the server serves requests\\nunder a different route prefix. For example for use with `kubectl proxy`.\",\n \"type\": \"string\"\n },\n \"secrets\": {\n \"description\": \"Secrets is a list of Secrets in the same namespace as the Alertmanager\\nobject, which shall be mounted into the Alertmanager Pods.\\nEach Secret is added to the StatefulSet definition as a volume named `secret-\\u003csecret-name\\u003e`.\\nThe Secrets are mounted into `/etc/alertmanager/secrets/\\u003csecret-name\\u003e` in the 'alertmanager' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nPrometheus Pods.\",\n \"type\": \"string\"\n },\n \"sha\": {\n \"description\": \"SHA of Alertmanager container image to be deployed. Defaults to the value of `version`.\\nSimilar to a tag, but the SHA explicitly deploys an immutable container image.\\nVersion and Tag are ignored if SHA is set.\\nDeprecated: use 'image' instead. The image digest can be specified as part of the image URL.\",\n \"type\": \"string\"\n },\n \"storage\": {\n \"description\": \"Storage is the definition of how storage will be used by the Alertmanager\\ninstances.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\n },\n \"tag\": {\n \"description\": \"Tag of Alertmanager container image to be deployed. Defaults to the value of `version`.\\nVersion is ignored if Tag is set.\\nDeprecated: use 'image' instead. The image tag can be specified as part of the image URL.\",\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 \"topologySpreadConstraints\": {\n \"description\": \"If specified, the pod's topology spread constraints.\",\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\\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\\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\\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\\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 \"version\": {\n \"description\": \"Version the cluster should be on.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition.\\nVolumeMounts specified will be appended to other VolumeMounts in the alertmanager container,\\nthat are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows configuration of additional volumes on the output StatefulSet definition.\\nVolumes specified will be appended to other volumes that are generated as a result of\\nStorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"web\": {\n \"description\": \"Defines the web command line flags when starting Alertmanager.\",\n \"properties\": {\n \"getConcurrency\": {\n \"description\": \"Maximum number of GET requests processed concurrently. This corresponds to the\\nAlertmanager's `--web.get-concurrency` flag.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"timeout\": {\n \"description\": \"Timeout for HTTP requests. This corresponds to the Alertmanager's\\n`--web.timeout` flag.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Alertmanager\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Alertmanager", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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\" width='434.72' height='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" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/AlertmanagerConfig.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/AlertmanagerConfig.json new file mode 100644 index 00000000000..2a6deba5d0c --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/AlertmanagerConfig.json @@ -0,0 +1,197 @@ +{ + "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": "AlertmanagerConfig", + "schema": "{\n \"description\": \"AlertmanagerConfig configures the Prometheus Alertmanager,\\nspecifying how alerts should be grouped, inhibited and notified to external systems.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"AlertmanagerConfigSpec is a specification of the desired behavior of the\\nAlertmanager configuration.\\nBy default, the Alertmanager configuration only applies to alerts for which\\nthe `namespace` label is equal to the namespace of the AlertmanagerConfig\\nresource (see the `.spec.alertmanagerConfigMatcherStrategy` field of the\\nAlertmanager CRD).\",\n \"properties\": {\n \"inhibitRules\": {\n \"description\": \"List of inhibition rules. The rules will only apply to alerts matching\\nthe resource's namespace.\",\n \"items\": {\n \"description\": \"InhibitRule defines an inhibition rule that allows to mute alerts when other\\nalerts are already firing.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#inhibit_rule\",\n \"properties\": {\n \"equal\": {\n \"description\": \"Labels that must have an equal value in the source and target alert for\\nthe inhibition to take effect.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sourceMatch\": {\n \"description\": \"Matchers for which one or more alerts have to exist for the inhibition\\nto take effect. The operator enforces that the alert matches the\\nresource's namespace.\",\n \"items\": {\n \"description\": \"Matcher defines how to match on alert's labels.\",\n \"properties\": {\n \"matchType\": {\n \"description\": \"Match operation available with AlertManager \\u003e= v0.22.0 and\\ntakes precedence over Regex (deprecated) if non-empty.\",\n \"enum\": [\n \"!=\",\n \"=\",\n \"=~\",\n \"!~\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Label to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"Whether to match on equality (false) or regular-expression (true).\\nDeprecated: for AlertManager \\u003e= v0.22.0, `matchType` should be used instead.\",\n \"type\": \"boolean\"\n },\n \"value\": {\n \"description\": \"Label value to match.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"targetMatch\": {\n \"description\": \"Matchers that have to be fulfilled in the alerts to be muted. The\\noperator enforces that the alert matches the resource's namespace.\",\n \"items\": {\n \"description\": \"Matcher defines how to match on alert's labels.\",\n \"properties\": {\n \"matchType\": {\n \"description\": \"Match operation available with AlertManager \\u003e= v0.22.0 and\\ntakes precedence over Regex (deprecated) if non-empty.\",\n \"enum\": [\n \"!=\",\n \"=\",\n \"=~\",\n \"!~\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Label to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"Whether to match on equality (false) or regular-expression (true).\\nDeprecated: for AlertManager \\u003e= v0.22.0, `matchType` should be used instead.\",\n \"type\": \"boolean\"\n },\n \"value\": {\n \"description\": \"Label value to match.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"muteTimeIntervals\": {\n \"description\": \"List of MuteTimeInterval specifying when the routes should be muted.\",\n \"items\": {\n \"description\": \"MuteTimeInterval specifies the periods in time when notifications will be muted\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the time interval\",\n \"type\": \"string\"\n },\n \"timeIntervals\": {\n \"description\": \"TimeIntervals is a list of TimeInterval\",\n \"items\": {\n \"description\": \"TimeInterval describes intervals of time\",\n \"properties\": {\n \"daysOfMonth\": {\n \"description\": \"DaysOfMonth is a list of DayOfMonthRange\",\n \"items\": {\n \"description\": \"DayOfMonthRange is an inclusive range of days of the month beginning at 1\",\n \"properties\": {\n \"end\": {\n \"description\": \"End of the inclusive range\",\n \"maximum\": 31,\n \"minimum\": -31,\n \"type\": \"integer\"\n },\n \"start\": {\n \"description\": \"Start of the inclusive range\",\n \"maximum\": 31,\n \"minimum\": -31,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"months\": {\n \"description\": \"Months is a list of MonthRange\",\n \"items\": {\n \"description\": \"MonthRange is an inclusive range of months of the year beginning in January\\nMonths can be specified by name (e.g 'January') by numerical month (e.g '1') or as an inclusive range (e.g 'January:March', '1:3', '1:March')\",\n \"pattern\": \"^((?i)january|february|march|april|may|june|july|august|september|october|november|december|1[0-2]|[1-9])(?:((:((?i)january|february|march|april|may|june|july|august|september|october|november|december|1[0-2]|[1-9]))$)|$)\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"times\": {\n \"description\": \"Times is a list of TimeRange\",\n \"items\": {\n \"description\": \"TimeRange defines a start and end time in 24hr format\",\n \"properties\": {\n \"endTime\": {\n \"description\": \"EndTime is the end time in 24hr format.\",\n \"pattern\": \"^((([01][0-9])|(2[0-3])):[0-5][0-9])$|(^24:00$)\",\n \"type\": \"string\"\n },\n \"startTime\": {\n \"description\": \"StartTime is the start time in 24hr format.\",\n \"pattern\": \"^((([01][0-9])|(2[0-3])):[0-5][0-9])$|(^24:00$)\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"weekdays\": {\n \"description\": \"Weekdays is a list of WeekdayRange\",\n \"items\": {\n \"description\": \"WeekdayRange is an inclusive range of days of the week beginning on Sunday\\nDays can be specified by name (e.g 'Sunday') or as an inclusive range (e.g 'Monday:Friday')\",\n \"pattern\": \"^((?i)sun|mon|tues|wednes|thurs|fri|satur)day(?:((:(sun|mon|tues|wednes|thurs|fri|satur)day)$)|$)\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"years\": {\n \"description\": \"Years is a list of YearRange\",\n \"items\": {\n \"description\": \"YearRange is an inclusive range of years\",\n \"pattern\": \"^2\\\\d{3}(?::2\\\\d{3}|$)\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\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 \"receivers\": {\n \"description\": \"List of receivers.\",\n \"items\": {\n \"description\": \"Receiver defines one or more notification integrations.\",\n \"properties\": {\n \"discordConfigs\": {\n \"description\": \"List of Discord configurations.\",\n \"items\": {\n \"description\": \"DiscordConfig configures notifications via Discord.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#discord_config\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The secret's key that contains the Discord webhook URL.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"The template of the message's body.\",\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"title\": {\n \"description\": \"The template of the message's title.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiURL\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"emailConfigs\": {\n \"description\": \"List of Email configurations.\",\n \"items\": {\n \"description\": \"EmailConfig configures notifications via Email.\",\n \"properties\": {\n \"authIdentity\": {\n \"description\": \"The identity to use for authentication.\",\n \"type\": \"string\"\n },\n \"authPassword\": {\n \"description\": \"The secret's key that contains the password to use for authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authSecret\": {\n \"description\": \"The secret's key that contains the CRAM-MD5 secret.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authUsername\": {\n \"description\": \"The username to use for authentication.\",\n \"type\": \"string\"\n },\n \"from\": {\n \"description\": \"The sender address.\",\n \"type\": \"string\"\n },\n \"headers\": {\n \"description\": \"Further headers email header key/value pairs. Overrides any headers\\npreviously set by the notification implementation.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hello\": {\n \"description\": \"The hostname to identify to the SMTP server.\",\n \"type\": \"string\"\n },\n \"html\": {\n \"description\": \"The HTML body of the email notification.\",\n \"type\": \"string\"\n },\n \"requireTLS\": {\n \"description\": \"The SMTP TLS requirement.\\nNote that Go does not support unencrypted connections to remote SMTP endpoints.\",\n \"type\": \"boolean\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"smarthost\": {\n \"description\": \"The SMTP host and port through which emails are sent. E.g. example.com:25\",\n \"type\": \"string\"\n },\n \"text\": {\n \"description\": \"The text body of the email notification.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"to\": {\n \"description\": \"The email address to send notifications to.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"msteamsConfigs\": {\n \"description\": \"List of MSTeams configurations.\\nIt requires Alertmanager \\u003e= 0.26.0.\",\n \"items\": {\n \"description\": \"MSTeamsConfig configures notifications via Microsoft Teams.\\nIt requires Alertmanager \\u003e= 0.26.0.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"sendResolved\": {\n \"description\": \"Whether to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"summary\": {\n \"description\": \"Message summary template.\\nIt requires Alertmanager \\u003e= 0.27.0.\",\n \"type\": \"string\"\n },\n \"text\": {\n \"description\": \"Message body template.\",\n \"type\": \"string\"\n },\n \"title\": {\n \"description\": \"Message title template.\",\n \"type\": \"string\"\n },\n \"webhookUrl\": {\n \"description\": \"MSTeams webhook URL.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"required\": [\n \"webhookUrl\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the receiver. Must be unique across all items from the list.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"opsgenieConfigs\": {\n \"description\": \"List of OpsGenie configurations.\",\n \"items\": {\n \"description\": \"OpsGenieConfig configures notifications via OpsGenie.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#opsgenie_config\",\n \"properties\": {\n \"actions\": {\n \"description\": \"Comma separated list of actions that will be available for the alert.\",\n \"type\": \"string\"\n },\n \"apiKey\": {\n \"description\": \"The secret's key that contains the OpsGenie API key.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"apiURL\": {\n \"description\": \"The URL to send OpsGenie API requests to.\",\n \"type\": \"string\"\n },\n \"description\": {\n \"description\": \"Description of the incident.\",\n \"type\": \"string\"\n },\n \"details\": {\n \"description\": \"A set of arbitrary key/value pairs that provide further detail about the incident.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"entity\": {\n \"description\": \"Optional field that can be used to specify which domain alert is related to.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Alert text limited to 130 characters.\",\n \"type\": \"string\"\n },\n \"note\": {\n \"description\": \"Additional alert note.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"Priority level of alert. Possible values are P1, P2, P3, P4, and P5.\",\n \"type\": \"string\"\n },\n \"responders\": {\n \"description\": \"List of responders responsible for notifications.\",\n \"items\": {\n \"description\": \"OpsGenieConfigResponder defines a responder to an incident.\\nOne of `id`, `name` or `username` has to be defined.\",\n \"properties\": {\n \"id\": {\n \"description\": \"ID of the responder.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the responder.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of responder.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username of the responder.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"source\": {\n \"description\": \"Backlink to the sender of the notification.\",\n \"type\": \"string\"\n },\n \"tags\": {\n \"description\": \"Comma separated list of tags attached to the notifications.\",\n \"type\": \"string\"\n },\n \"updateAlerts\": {\n \"description\": \"Whether to update message and description of the alert in OpsGenie if it already exists\\nBy default, the alert is never updated in OpsGenie, the new message only appears in activity log.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pagerdutyConfigs\": {\n \"description\": \"List of PagerDuty configurations.\",\n \"items\": {\n \"description\": \"PagerDutyConfig configures notifications via PagerDuty.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#pagerduty_config\",\n \"properties\": {\n \"class\": {\n \"description\": \"The class/type of the event.\",\n \"type\": \"string\"\n },\n \"client\": {\n \"description\": \"Client identification.\",\n \"type\": \"string\"\n },\n \"clientURL\": {\n \"description\": \"Backlink to the sender of notification.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"The part or component of the affected system that is broken.\",\n \"type\": \"string\"\n },\n \"description\": {\n \"description\": \"Description of the incident.\",\n \"type\": \"string\"\n },\n \"details\": {\n \"description\": \"Arbitrary key/value pairs that provide further detail about the incident.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"A cluster or grouping of sources.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pagerDutyImageConfigs\": {\n \"description\": \"A list of image details to attach that provide further detail about an incident.\",\n \"items\": {\n \"description\": \"PagerDutyImageConfig attaches images to an incident\",\n \"properties\": {\n \"alt\": {\n \"description\": \"Alt is the optional alternative text for the image.\",\n \"type\": \"string\"\n },\n \"href\": {\n \"description\": \"Optional URL; makes the image a clickable link.\",\n \"type\": \"string\"\n },\n \"src\": {\n \"description\": \"Src of the image being attached to the incident\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pagerDutyLinkConfigs\": {\n \"description\": \"A list of link details to attach that provide further detail about an incident.\",\n \"items\": {\n \"description\": \"PagerDutyLinkConfig attaches text links to an incident\",\n \"properties\": {\n \"alt\": {\n \"description\": \"Text that describes the purpose of the link, and can be used as the link's text.\",\n \"type\": \"string\"\n },\n \"href\": {\n \"description\": \"Href is the URL of the link to be attached\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"routingKey\": {\n \"description\": \"The secret's key that contains the PagerDuty integration key (when using\\nEvents API v2). Either this field or `serviceKey` needs to be defined.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"serviceKey\": {\n \"description\": \"The secret's key that contains the PagerDuty service key (when using\\nintegration type \\\"Prometheus\\\"). Either this field or `routingKey` needs to\\nbe defined.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"severity\": {\n \"description\": \"Severity of the incident.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Unique location of the affected system.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"The URL to send requests to.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pushoverConfigs\": {\n \"description\": \"List of Pushover configurations.\",\n \"items\": {\n \"description\": \"PushoverConfig configures notifications via Pushover.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#pushover_config\",\n \"properties\": {\n \"device\": {\n \"description\": \"The name of a device to send the notification to\",\n \"type\": \"string\"\n },\n \"expire\": {\n \"description\": \"How long your notification will continue to be retried for, unless the user\\nacknowledges the notification.\",\n \"pattern\": \"^(([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 \"html\": {\n \"description\": \"Whether notification message is HTML or plain text.\",\n \"type\": \"boolean\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Notification message.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"Priority, see https://pushover.net/api#priority\",\n \"type\": \"string\"\n },\n \"retry\": {\n \"description\": \"How often the Pushover servers will send the same notification to the user.\\nMust be at least 30 seconds.\",\n \"pattern\": \"^(([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 \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"sound\": {\n \"description\": \"The name of one of the sounds supported by device clients to override the user's default sound choice\",\n \"type\": \"string\"\n },\n \"title\": {\n \"description\": \"Notification title.\",\n \"type\": \"string\"\n },\n \"token\": {\n \"description\": \"The secret's key that contains the registered application's API token, see https://pushover.net/apps.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\\nEither `token` or `tokenFile` is required.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tokenFile\": {\n \"description\": \"The token file that contains the registered application's API token, see https://pushover.net/apps.\\nEither `token` or `tokenFile` is required.\\nIt requires Alertmanager \\u003e= v0.26.0.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"The time to live definition for the alert notification\",\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 \"url\": {\n \"description\": \"A supplementary URL shown alongside the message.\",\n \"type\": \"string\"\n },\n \"urlTitle\": {\n \"description\": \"A title for supplementary URL, otherwise just the URL is shown\",\n \"type\": \"string\"\n },\n \"userKey\": {\n \"description\": \"The secret's key that contains the recipient user's user key.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\\nEither `userKey` or `userKeyFile` is required.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"userKeyFile\": {\n \"description\": \"The user key file that contains the recipient user's user key.\\nEither `userKey` or `userKeyFile` is required.\\nIt requires Alertmanager \\u003e= v0.26.0.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"slackConfigs\": {\n \"description\": \"List of Slack configurations.\",\n \"items\": {\n \"description\": \"SlackConfig configures notifications via Slack.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#slack_config\",\n \"properties\": {\n \"actions\": {\n \"description\": \"A list of Slack actions that are sent with each notification.\",\n \"items\": {\n \"description\": \"SlackAction configures a single Slack action that is sent with each\\nnotification.\\nSee https://api.slack.com/docs/message-attachments#action_fields and\\nhttps://api.slack.com/docs/message-buttons for more information.\",\n \"properties\": {\n \"confirm\": {\n \"description\": \"SlackConfirmationField protect users from destructive actions or\\nparticularly distinguished decisions by asking them to confirm their button\\nclick one more time.\\nSee https://api.slack.com/docs/interactive-message-field-guide#confirmation_fields\\nfor more information.\",\n \"properties\": {\n \"dismissText\": {\n \"type\": \"string\"\n },\n \"okText\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"text\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"text\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"apiURL\": {\n \"description\": \"The secret's key that contains the Slack webhook URL.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"callbackId\": {\n \"type\": \"string\"\n },\n \"channel\": {\n \"description\": \"The channel or user to send notifications to.\",\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"fallback\": {\n \"type\": \"string\"\n },\n \"fields\": {\n \"description\": \"A list of Slack fields that are sent with each notification.\",\n \"items\": {\n \"description\": \"SlackField configures a single Slack field that is sent with each notification.\\nEach field must contain a title, value, and optionally, a boolean value to indicate if the field\\nis short enough to be displayed next to other fields designated as short.\\nSee https://api.slack.com/docs/message-attachments#fields for more information.\",\n \"properties\": {\n \"short\": {\n \"type\": \"boolean\"\n },\n \"title\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"title\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"footer\": {\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"iconEmoji\": {\n \"type\": \"string\"\n },\n \"iconURL\": {\n \"type\": \"string\"\n },\n \"imageURL\": {\n \"type\": \"string\"\n },\n \"linkNames\": {\n \"type\": \"boolean\"\n },\n \"mrkdwnIn\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pretext\": {\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"shortFields\": {\n \"type\": \"boolean\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"thumbURL\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"titleLink\": {\n \"type\": \"string\"\n },\n \"username\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"snsConfigs\": {\n \"description\": \"List of SNS configurations\",\n \"items\": {\n \"description\": \"SNSConfig configures notifications via AWS SNS.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#sns_configs\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The SNS API URL i.e. https://sns.us-east-2.amazonaws.com.\\nIf not specified, the SNS API URL from the SNS SDK will be used.\",\n \"type\": \"string\"\n },\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"SNS message attributes.\",\n \"type\": \"object\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"The message content of the SNS notification.\",\n \"type\": \"string\"\n },\n \"phoneNumber\": {\n \"description\": \"Phone number if message is delivered via SMS in E.164 format.\\nIf you don't specify this value, you must specify a value for the TopicARN or TargetARN.\",\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"sigv4\": {\n \"description\": \"Configures AWS's Signature Verification 4 signing process to sign requests.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"subject\": {\n \"description\": \"Subject line when the message is delivered to email endpoints.\",\n \"type\": \"string\"\n },\n \"targetARN\": {\n \"description\": \"The mobile platform endpoint ARN if message is delivered via mobile notifications.\\nIf you don't specify this value, you must specify a value for the topic_arn or PhoneNumber.\",\n \"type\": \"string\"\n },\n \"topicARN\": {\n \"description\": \"SNS topic ARN, i.e. arn:aws:sns:us-east-2:698519295917:My-Topic\\nIf you don't specify this value, you must specify a value for the PhoneNumber or TargetARN.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"telegramConfigs\": {\n \"description\": \"List of Telegram configurations.\",\n \"items\": {\n \"description\": \"TelegramConfig configures notifications via Telegram.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#telegram_config\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The Telegram API URL i.e. https://api.telegram.org.\\nIf not specified, default API URL will be used.\",\n \"type\": \"string\"\n },\n \"botToken\": {\n \"description\": \"Telegram bot token. It is mutually exclusive with `botTokenFile`.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\\n\\nEither `botToken` or `botTokenFile` is required.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"botTokenFile\": {\n \"description\": \"File to read the Telegram bot token from. It is mutually exclusive with `botToken`.\\nEither `botToken` or `botTokenFile` is required.\\n\\nIt requires Alertmanager \\u003e= v0.26.0.\",\n \"type\": \"string\"\n },\n \"chatID\": {\n \"description\": \"The Telegram chat ID.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"disableNotifications\": {\n \"description\": \"Disable telegram notifications\",\n \"type\": \"boolean\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Message template\",\n \"type\": \"string\"\n },\n \"messageThreadID\": {\n \"description\": \"The Telegram Group Topic ID.\\nIt requires Alertmanager \\u003e= 0.26.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"parseMode\": {\n \"description\": \"Parse mode for telegram message\",\n \"enum\": [\n \"MarkdownV2\",\n \"Markdown\",\n \"HTML\"\n ],\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether to notify about resolved alerts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"chatID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"victoropsConfigs\": {\n \"description\": \"List of VictorOps configurations.\",\n \"items\": {\n \"description\": \"VictorOpsConfig configures notifications via VictorOps.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#victorops_config\",\n \"properties\": {\n \"apiKey\": {\n \"description\": \"The secret's key that contains the API key to use when talking to the VictorOps API.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"apiUrl\": {\n \"description\": \"The VictorOps API URL.\",\n \"type\": \"string\"\n },\n \"customFields\": {\n \"description\": \"Additional custom fields for notification.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"entityDisplayName\": {\n \"description\": \"Contains summary of the alerted problem.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"The HTTP client's configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"messageType\": {\n \"description\": \"Describes the behavior of the alert (CRITICAL, WARNING, INFO).\",\n \"type\": \"string\"\n },\n \"monitoringTool\": {\n \"description\": \"The monitoring tool the state message is from.\",\n \"type\": \"string\"\n },\n \"routingKey\": {\n \"description\": \"A key used to map the alert to a team.\",\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"stateMessage\": {\n \"description\": \"Contains long explanation of the alerted problem.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"webexConfigs\": {\n \"description\": \"List of Webex configurations.\",\n \"items\": {\n \"description\": \"WebexConfig configures notification via Cisco Webex\\nSee https://prometheus.io/docs/alerting/latest/configuration/#webex_config\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The Webex Teams API URL i.e. https://webexapis.com/v1/messages\\nProvide if different from the default API URL.\",\n \"pattern\": \"^https?://.+$\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"The HTTP client's configuration.\\nYou must supply the bot token via the `httpConfig.authorization` field.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Message template\",\n \"type\": \"string\"\n },\n \"roomID\": {\n \"description\": \"ID of the Webex Teams room where to send the messages.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether to notify about resolved alerts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"roomID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"webhookConfigs\": {\n \"description\": \"List of webhook configurations.\",\n \"items\": {\n \"description\": \"WebhookConfig configures notifications via a generic receiver supporting the webhook payload.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#webhook_config\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxAlerts\": {\n \"description\": \"Maximum number of alerts to be sent per webhook message. When 0, all alerts are included.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"url\": {\n \"description\": \"The URL to send HTTP POST requests to. `urlSecret` takes precedence over\\n`url`. One of `urlSecret` and `url` should be defined.\",\n \"type\": \"string\"\n },\n \"urlSecret\": {\n \"description\": \"The secret's key that contains the webhook URL to send HTTP requests to.\\n`urlSecret` takes precedence over `url`. One of `urlSecret` and `url`\\nshould be defined.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"wechatConfigs\": {\n \"description\": \"List of WeChat configurations.\",\n \"items\": {\n \"description\": \"WeChatConfig configures notifications via WeChat.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#wechat_config\",\n \"properties\": {\n \"agentID\": {\n \"type\": \"string\"\n },\n \"apiSecret\": {\n \"description\": \"The secret's key that contains the WeChat API key.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"apiURL\": {\n \"description\": \"The WeChat API URL.\",\n \"type\": \"string\"\n },\n \"corpID\": {\n \"description\": \"The corp id for authentication.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"API request data as defined by the WeChat API.\",\n \"type\": \"string\"\n },\n \"messageType\": {\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"toParty\": {\n \"type\": \"string\"\n },\n \"toTag\": {\n \"type\": \"string\"\n },\n \"toUser\": {\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 \"route\": {\n \"description\": \"The Alertmanager route definition for alerts matching the resource's\\nnamespace. If present, it will be added to the generated Alertmanager\\nconfiguration as a first-level route.\",\n \"properties\": {\n \"activeTimeIntervals\": {\n \"description\": \"ActiveTimeIntervals is a list of MuteTimeInterval names when this route should be active.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"continue\": {\n \"description\": \"Boolean indicating whether an alert should continue matching subsequent\\nsibling nodes. It will always be overridden to true for the first-level\\nroute by the Prometheus operator.\",\n \"type\": \"boolean\"\n },\n \"groupBy\": {\n \"description\": \"List of labels to group by.\\nLabels must not be repeated (unique list).\\nSpecial label \\\"...\\\" (aggregate by all possible labels), if provided, must be the only element in the list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"groupInterval\": {\n \"description\": \"How long to wait before sending an updated notification.\\nMust match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$`\\nExample: \\\"5m\\\"\",\n \"type\": \"string\"\n },\n \"groupWait\": {\n \"description\": \"How long to wait before sending the initial notification.\\nMust match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$`\\nExample: \\\"30s\\\"\",\n \"type\": \"string\"\n },\n \"matchers\": {\n \"description\": \"List of matchers that the alert's labels should match. For the first\\nlevel route, the operator removes any existing equality and regexp\\nmatcher on the `namespace` label and adds a `namespace: \\u003cobject\\nnamespace\\u003e` matcher.\",\n \"items\": {\n \"description\": \"Matcher defines how to match on alert's labels.\",\n \"properties\": {\n \"matchType\": {\n \"description\": \"Match operation available with AlertManager \\u003e= v0.22.0 and\\ntakes precedence over Regex (deprecated) if non-empty.\",\n \"enum\": [\n \"!=\",\n \"=\",\n \"=~\",\n \"!~\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Label to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"Whether to match on equality (false) or regular-expression (true).\\nDeprecated: for AlertManager \\u003e= v0.22.0, `matchType` should be used instead.\",\n \"type\": \"boolean\"\n },\n \"value\": {\n \"description\": \"Label value to match.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"muteTimeIntervals\": {\n \"description\": \"Note: this comment applies to the field definition above but appears\\nbelow otherwise it gets included in the generated manifest.\\nCRD schema doesn't support self-referential types for now (see\\nhttps://github.com/kubernetes/kubernetes/issues/62872). We have to use\\nan alternative type to circumvent the limitation. The downside is that\\nthe Kube API can't validate the data beyond the fact that it is a valid\\nJSON representation.\\nMuteTimeIntervals is a list of MuteTimeInterval names that will mute this route when matched,\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"receiver\": {\n \"description\": \"Name of the receiver for this route. If not empty, it should be listed in\\nthe `receivers` field.\",\n \"type\": \"string\"\n },\n \"repeatInterval\": {\n \"description\": \"How long to wait before repeating the last notification.\\nMust match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$`\\nExample: \\\"4h\\\"\",\n \"type\": \"string\"\n },\n \"routes\": {\n \"description\": \"Child routes.\",\n \"items\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Alertmanager Config\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Alertmanager Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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\" width='434.72' height='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" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PodMonitor.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PodMonitor.json new file mode 100644 index 00000000000..5842d130243 --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PodMonitor.json @@ -0,0 +1,196 @@ +{ + "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": "PodMonitor", + "schema": "{\n \"description\": \"The `PodMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of pods.\\nAmong other things, it allows to specify:\\n* The pods to scrape via label selectors.\\n* The container ports to scrape.\\n* Authentication credentials to use.\\n* Target and metric relabeling.\\n\\n`Prometheus` and `PrometheusAgent` objects select `PodMonitor` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired Pod selection for target discovery by Prometheus.\",\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"`attachMetadata` defines additional metadata which is added to the\\ndiscovered targets.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"bodySizeLimit\": {\n \"description\": \"When defined, bodySizeLimit specifies a job level limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"jobLabel\": {\n \"description\": \"The label to use to retrieve the job name from.\\n`jobLabel` selects the label from the associated Kubernetes `Pod`\\nobject which will be used as the `job` label for all metrics.\\n\\nFor example if `jobLabel` is set to `foo` and the Kubernetes `Pod`\\nobject is labeled with `foo: bar`, then Prometheus adds the `job=\\\"bar\\\"`\\nlabel to all ingested metrics.\\n\\nIf the value of this field is empty, the `job` label of the metrics\\ndefaults to the namespace and name of the PodMonitor object (e.g. `\\u003cnamespace\\u003e/\\u003cname\\u003e`).\",\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"namespaceSelector\": {\n \"description\": \"`namespaceSelector` defines in which namespace(s) Prometheus should discover the pods.\\nBy default, the pods are discovered in the same namespace as the `PodMonitor` object but it is possible to select pods across different/all namespaces.\",\n \"properties\": {\n \"any\": {\n \"description\": \"Boolean describing whether all namespaces are selected in contrast to a\\nlist restricting them.\",\n \"type\": \"boolean\"\n },\n \"matchNames\": {\n \"description\": \"List of namespace names to select from.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podMetricsEndpoints\": {\n \"description\": \"Defines how to scrape metrics from the selected pods.\",\n \"items\": {\n \"description\": \"PodMetricsEndpoint defines an endpoint serving Prometheus metrics to be scraped by\\nPrometheus.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"`authorization` configures the Authorization header credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"`basicAuth` configures the Basic Authentication credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"`bearerTokenSecret` specifies a key of a Secret containing the bearer\\ntoken for scraping targets. The secret needs to be in the same namespace\\nas the PodMonitor object and readable by the Prometheus Operator.\\n\\nDeprecated: use `authorization` instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHttp2\": {\n \"description\": \"`enableHttp2` can be used to disable HTTP2 when scraping the target.\",\n \"type\": \"boolean\"\n },\n \"filterRunning\": {\n \"description\": \"When true, the pods which are not running (e.g. either in Failed or\\nSucceeded state) are dropped during the target discovery.\\n\\nIf unset, the filtering is enabled.\\n\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"`followRedirects` defines whether the scrape requests should follow HTTP\\n3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"honorLabels\": {\n \"description\": \"When true, `honorLabels` preserves the metric's labels when they collide\\nwith the target's labels.\",\n \"type\": \"boolean\"\n },\n \"honorTimestamps\": {\n \"description\": \"`honorTimestamps` controls whether Prometheus preserves the timestamps\\nwhen exposed by the target.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"Interval at which Prometheus scrapes the metrics from the target.\\n\\nIf empty, Prometheus uses the global scrape interval.\",\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 \"metricRelabelings\": {\n \"description\": \"`metricRelabelings` configures the relabeling rules to apply to the\\nsamples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"oauth2\": {\n \"description\": \"`oauth2` configures the OAuth2 settings to use when scraping the target.\\n\\nIt requires Prometheus \\u003e= 2.27.0.\\n\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"params\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"`params` define optional HTTP URL parameters.\",\n \"type\": \"object\"\n },\n \"path\": {\n \"description\": \"HTTP path from which to scrape for metrics.\\n\\nIf empty, Prometheus uses the default value (e.g. `/metrics`).\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The `Pod` port name which exposes the endpoint.\\n\\nIt takes precedence over the `portNumber` and `targetPort` fields.\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"description\": \"The `Pod` port number which exposes the endpoint.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` configures the HTTP Proxy URL (e.g.\\n\\\"http://proxyserver:2195\\\") to go through when scraping the target.\",\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"`relabelings` configures the relabeling rules to apply the target's\\nmetadata labels.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields.\\n\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"HTTP scheme to use for scraping.\\n\\n`http` and `https` are the expected values unless you rewrite the\\n`__scheme__` label via relabeling.\\n\\nIf empty, Prometheus uses the default value `http`.\",\n \"enum\": [\n \"http\",\n \"https\"\n ],\n \"type\": \"string\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Timeout after which Prometheus considers the scrape to be failed.\\n\\nIf empty, Prometheus uses the global scrape timeout unless it is less\\nthan the target's scrape interval value in which the latter is used.\",\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 \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the target port of the `Pod` object behind the Service, the\\nport must be specified with container port property.\\n\\nDeprecated: use 'port' or 'portNumber' instead.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when scraping the target.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"trackTimestampsStaleness\": {\n \"description\": \"`trackTimestampsStaleness` defines whether Prometheus tracks staleness of\\nthe metrics that have an explicit timestamp present in scraped data.\\nHas no effect if `honorTimestamps` is false.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"podTargetLabels\": {\n \"description\": \"`podTargetLabels` defines the labels which are transferred from the\\nassociated Kubernetes `Pod` object onto the ingested metrics.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sampleLimit\": {\n \"description\": \"`sampleLimit` defines a per-scrape limit on the number of scraped samples\\nthat will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeProtocols\": {\n \"description\": \"`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"selector\": {\n \"description\": \"Label selector to select the Kubernetes `Pod` objects to scrape metrics from.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"selectorMechanism\": {\n \"description\": \"Mechanism used to select the endpoints to scrape.\\nBy default, the selection process relies on relabel configurations to filter the discovered targets.\\nAlternatively, you can opt in for role selectors, which may offer better efficiency in large clusters.\\nWhich strategy is best for your use case needs to be carefully evaluated.\\n\\nIt requires Prometheus \\u003e= v2.17.0.\",\n \"enum\": [\n \"RelabelConfig\",\n \"RoleSelector\"\n ],\n \"type\": \"string\"\n },\n \"targetLimit\": {\n \"description\": \"`targetLimit` defines a limit on the number of scraped targets that will\\nbe accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"selector\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Pod Monitor\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Pod Monitor", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Probe.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Probe.json new file mode 100644 index 00000000000..ca674c9d3d3 --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Probe.json @@ -0,0 +1,196 @@ +{ + "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": "Probe", + "schema": "{\n \"description\": \"The `Probe` custom resource definition (CRD) defines how to scrape metrics from prober exporters such as the [blackbox exporter](https://github.com/prometheus/blackbox_exporter).\\n\\nThe `Probe` resource needs 2 pieces of information:\\n* The list of probed addresses which can be defined statically or by discovering Kubernetes Ingress objects.\\n* The prober which exposes the availability of probed endpoints (over various protocols such HTTP, TCP, ICMP, ...) as Prometheus metrics.\\n\\n`Prometheus` and `PrometheusAgent` objects select `Probe` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired Ingress selection for target discovery by Prometheus.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for this endpoint\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth allow an endpoint to authenticate over basic authentication.\\nMore info: https://prometheus.io/docs/operating/configuration/#endpoint\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"Secret to mount to read bearer token for scraping targets. The secret\\nneeds to be in the same namespace as the probe and accessible by\\nthe Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"interval\": {\n \"description\": \"Interval at which targets are probed using the configured prober.\\nIf not specified Prometheus' global scrape interval is used.\",\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 \"jobName\": {\n \"description\": \"The job name assigned to scraped metrics by default.\",\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelConfigs to apply to samples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"module\": {\n \"description\": \"The module to use for probing specifying how to probe the target.\\nExample module configuring in the blackbox exporter:\\nhttps://github.com/prometheus/blackbox_exporter/blob/master/example.yml\",\n \"type\": \"string\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"oauth2\": {\n \"description\": \"OAuth2 for the URL. Only valid in Prometheus versions 2.27.0 and newer.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"prober\": {\n \"description\": \"Specification for the prober to use for probing targets.\\nThe prober.URL parameter is required. Targets cannot be probed if left empty.\",\n \"properties\": {\n \"path\": {\n \"default\": \"/probe\",\n \"description\": \"Path to collect metrics from.\\nDefaults to `/probe`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"Optional ProxyURL.\",\n \"type\": \"string\"\n },\n \"scheme\": {\n \"description\": \"HTTP scheme to use for scraping.\\n`http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling.\\nIf empty, Prometheus uses the default value `http`.\",\n \"enum\": [\n \"http\",\n \"https\"\n ],\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"Mandatory URL of the prober.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeProtocols\": {\n \"description\": \"`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Timeout for scraping metrics from the Prometheus exporter.\\nIf not specified, the Prometheus global scrape timeout is used.\",\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 \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"targets\": {\n \"description\": \"Targets defines a set of static or dynamically discovered targets to probe.\",\n \"properties\": {\n \"ingress\": {\n \"description\": \"ingress defines the Ingress objects to probe and the relabeling\\nconfiguration.\\nIf `staticConfig` is also defined, `staticConfig` takes precedence.\",\n \"properties\": {\n \"namespaceSelector\": {\n \"description\": \"From which namespaces to select Ingress objects.\",\n \"properties\": {\n \"any\": {\n \"description\": \"Boolean describing whether all namespaces are selected in contrast to a\\nlist restricting them.\",\n \"type\": \"boolean\"\n },\n \"matchNames\": {\n \"description\": \"List of namespace names to select from.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"relabelingConfigs\": {\n \"description\": \"RelabelConfigs to apply to the label set of the target before it gets\\nscraped.\\nThe original ingress address is available via the\\n`__tmp_prometheus_ingress_address` label. It can be used to customize the\\nprobed URL.\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Selector to select the Ingress 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 },\n \"type\": \"object\"\n },\n \"staticConfig\": {\n \"description\": \"staticConfig defines the static list of targets to probe and the\\nrelabeling configuration.\\nIf `ingress` is also defined, `staticConfig` takes precedence.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config.\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels assigned to all metrics scraped from the targets.\",\n \"type\": \"object\"\n },\n \"relabelingConfigs\": {\n \"description\": \"RelabelConfigs to apply to the label set of the targets before it gets\\nscraped.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"static\": {\n \"description\": \"The list of hosts to probe.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when scraping the endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Probe\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Probe", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Prometheus.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Prometheus.json new file mode 100644 index 00000000000..70c1f40c59f --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/Prometheus.json @@ -0,0 +1,197 @@ +{ + "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": "Prometheus", + "schema": "{\n \"description\": \"The `Prometheus` custom resource definition (CRD) defines a desired [Prometheus](https://prometheus.io/docs/prometheus) setup to run in a Kubernetes cluster. It allows to specify many options such as the number of replicas, persistent storage, and Alertmanagers where firing alerts should be sent and many more.\\n\\nFor each `Prometheus` resource, the Operator deploys one or several `StatefulSet` objects in the same namespace. The number of StatefulSets is equal to the number of shards which is 1 by default.\\n\\nThe resource defines via label and namespace selectors which `ServiceMonitor`, `PodMonitor`, `Probe` and `PrometheusRule` objects should be associated to the deployed Prometheus instances.\\n\\nThe Operator continuously reconciles the scrape and rules configuration and a sidecar container running in the Prometheus pods triggers a reload of the configuration when needed.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the Prometheus cluster. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalAlertManagerConfigs\": {\n \"description\": \"AdditionalAlertManagerConfigs specifies a key of a Secret containing\\nadditional Prometheus Alertmanager configurations. The Alertmanager\\nconfigurations are appended to the configuration generated by the\\nPrometheus Operator. They must be formatted according to the official\\nPrometheus documentation:\\n\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config\\n\\nThe user is responsible for making sure that the configurations are valid\\n\\nNote that using this feature may expose the possibility to break\\nupgrades of Prometheus. It is advised to review Prometheus release notes\\nto ensure that no incompatible AlertManager configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"additionalAlertRelabelConfigs\": {\n \"description\": \"AdditionalAlertRelabelConfigs specifies a key of a Secret containing\\nadditional Prometheus alert relabel configurations. The alert relabel\\nconfigurations are appended to the configuration generated by the\\nPrometheus Operator. They must be formatted according to the official\\nPrometheus documentation:\\n\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs\\n\\nThe user is responsible for making sure that the configurations are valid\\n\\nNote that using this feature may expose the possibility to break\\nupgrades of Prometheus. It is advised to review Prometheus release notes\\nto ensure that no incompatible alert relabel configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the 'prometheus' container.\\n\\nIt is intended for e.g. activating hidden flags which are not supported by\\nthe dedicated configuration options yet. The arguments are passed as-is to the\\nPrometheus container which may cause issues if they are invalid or not supported\\nby the given Prometheus version.\\n\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument, the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"additionalScrapeConfigs\": {\n \"description\": \"AdditionalScrapeConfigs allows specifying a key of a Secret containing\\nadditional Prometheus scrape configurations. Scrape configurations\\nspecified are appended to the configurations generated by the Prometheus\\nOperator. Job configurations specified must have the form as specified\\nin the official Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.\\nAs scrape configs are appended, the user is responsible to make sure it\\nis valid. Note that using this feature may expose the possibility to\\nbreak upgrades of Prometheus. It is advised to review Prometheus release\\nnotes to ensure that no incompatible scrape configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\": \"Defines the Pods' affinity scheduling rules if specified.\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"alerting\": {\n \"description\": \"Defines the settings related to Alertmanager.\",\n \"properties\": {\n \"alertmanagers\": {\n \"description\": \"Alertmanager endpoints where Prometheus should send alerts to.\",\n \"items\": {\n \"description\": \"AlertmanagerEndpoints defines a selection of a single Endpoints object\\ncontaining Alertmanager IPs to fire alerts against.\",\n \"properties\": {\n \"alertRelabelings\": {\n \"description\": \"Relabeling configs applied before sending alerts to a specific Alertmanager.\\nIt requires Prometheus \\u003e= v2.51.0.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"apiVersion\": {\n \"description\": \"Version of the Alertmanager API that Prometheus uses to send alerts.\\nIt can be \\\"V1\\\" or \\\"V2\\\".\\nThe field has no effect for Prometheus \\u003e= v3.0.0 because only the v2 API is supported.\",\n \"enum\": [\n \"v1\",\n \"V1\",\n \"v2\",\n \"V2\"\n ],\n \"type\": \"string\"\n },\n \"authorization\": {\n \"description\": \"Authorization section for Alertmanager.\\n\\nCannot be set at the same time as `basicAuth`, `bearerTokenFile` or `sigv4`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for Alertmanager.\\n\\nCannot be set at the same time as `bearerTokenFile`, `authorization` or `sigv4`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for Alertmanager.\\n\\nCannot be set at the same time as `basicAuth`, `authorization`, or `sigv4`.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"enableHttp2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Name of the Endpoints object in the namespace.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Endpoints object.\\n\\nIf not set, the object will be discovered in the namespace of the\\nPrometheus object.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"pathPrefix\": {\n \"description\": \"Prefix for the HTTP path alerts are pushed to.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Port on which the Alertmanager API is exposed.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"Relabel configuration applied to the discovered Alertmanagers.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"Scheme to use when firing alerts.\",\n \"type\": \"string\"\n },\n \"sigv4\": {\n \"description\": \"Sigv4 allows to configures AWS's Signature Verification 4 for the URL.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\\n\\nCannot be set at the same time as `basicAuth`, `bearerTokenFile` or `authorization`.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"timeout\": {\n \"description\": \"Timeout is a per-target Alertmanager timeout when pushing alerts.\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use for Alertmanager.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"alertmanagers\"\n ],\n \"type\": \"object\"\n },\n \"allowOverlappingBlocks\": {\n \"description\": \"AllowOverlappingBlocks enables vertical compaction and vertical query\\nmerge in Prometheus.\\n\\nDeprecated: this flag has no effect for Prometheus \\u003e= 2.39.0 where overlapping blocks are enabled by default.\",\n \"type\": \"boolean\"\n },\n \"apiserverConfig\": {\n \"description\": \"APIServerConfig allows specifying a host and auth methods to access the\\nKuberntees API server.\\nIf null, Prometheus is assumed to run inside of the cluster: it will\\ndiscover the API servers automatically and use the Pod's CA certificate\\nand bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the API server.\\n\\nCannot be set at the same time as `basicAuth`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the API server.\\n\\nCannot be set at the same time as `authorization`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for accessing apiserver.\\n\\nCannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"host\": {\n \"description\": \"Kubernetes API address consisting of a hostname or IP address followed\\nby an optional port number.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS Config to use for the API server.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\"\n ],\n \"type\": \"object\"\n },\n \"arbitraryFSAccessThroughSMs\": {\n \"description\": \"When true, ServiceMonitor, PodMonitor and Probe object are forbidden to\\nreference arbitrary files on the file system of the 'prometheus'\\ncontainer.\\nWhen a ServiceMonitor's endpoint specifies a `bearerTokenFile` value\\n(e.g. '/var/run/secrets/kubernetes.io/serviceaccount/token'), a\\nmalicious target can get access to the Prometheus service account's\\ntoken in the Prometheus' scrape request. Setting\\n`spec.arbitraryFSAccessThroughSM` to 'true' would prevent the attack.\\nUsers should instead provide the credentials using the\\n`spec.bearerTokenSecret` field.\",\n \"properties\": {\n \"deny\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod.\\nIf the field isn't set, the operator mounts the service account token by default.\\n\\n**Warning:** be aware that by default, Prometheus requires the service account token for Kubernetes service discovery.\\nIt is possible to use strategic merge patch to project the service account token into the 'prometheus' container.\",\n \"type\": \"boolean\"\n },\n \"baseImage\": {\n \"description\": \"Deprecated: use 'spec.image' instead.\",\n \"type\": \"string\"\n },\n \"bodySizeLimit\": {\n \"description\": \"BodySizeLimit defines per-scrape on response body size.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"configMaps\": {\n \"description\": \"ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach ConfigMap is added to the StatefulSet definition as a volume named `configmap-\\u003cconfigmap-name\\u003e`.\\nThe ConfigMaps are mounted into /etc/prometheus/configmaps/\\u003cconfigmap-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers or modifying operator\\ngenerated containers. This can be used to allow adding an authentication\\nproxy to the Pods or to change the behavior of an operator generated\\ncontainer. Containers described here modify an operator generated\\ncontainer if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of containers managed by the operator are:\\n* `prometheus`\\n* `config-reloader`\\n* `thanos-sidecar`\\n\\nOverriding containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"disableCompaction\": {\n \"description\": \"When true, the Prometheus compaction is disabled.\\nWhen `spec.thanos.objectStorageConfig` or `spec.objectStorageConfigFile` are defined, the operator automatically\\ndisables block compaction to avoid race conditions during block uploads (as the Thanos documentation recommends).\",\n \"type\": \"boolean\"\n },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enableAdminAPI\": {\n \"description\": \"Enables access to the Prometheus web admin API.\\n\\nWARNING: Enabling the admin APIs enables mutating endpoints, to delete data,\\nshutdown Prometheus, and more. Enabling this should be done with care and the\\nuser is advised to add additional authentication authorization via a proxy to\\nensure only clients authorized to perform these actions can do so.\\n\\nFor more information:\\nhttps://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis\",\n \"type\": \"boolean\"\n },\n \"enableFeatures\": {\n \"description\": \"Enable access to Prometheus feature flags. By default, no features are enabled.\\n\\nEnabling features which are disabled by default is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept\\nthat this behaviour may break at any time without notice.\\n\\nFor more information see https://prometheus.io/docs/prometheus/latest/feature_flags/\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"enableOTLPReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the OTLP Metrics protocol.\\n\\nNote that the OTLP receiver endpoint is automatically enabled if `.spec.otlpConfig` is defined.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"type\": \"boolean\"\n },\n \"enableRemoteWriteReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the Prometheus remote\\nwrite protocol.\\n\\nWARNING: This is not considered an efficient way of ingesting samples.\\nUse it with caution for specific low-volume use cases.\\nIt is not suitable for replacing the ingestion via scraping and turning\\nPrometheus into a push-based metrics collection system.\\nFor more information see https://prometheus.io/docs/prometheus/latest/querying/api/#remote-write-receiver\\n\\nIt requires Prometheus \\u003e= v2.33.0.\",\n \"type\": \"boolean\"\n },\n \"enforcedBodySizeLimit\": {\n \"description\": \"When defined, enforcedBodySizeLimit specifies a global limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\nTargets responding with a body larger than this many bytes will cause\\nthe scrape to fail.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\\n\\nWhen both `enforcedBodySizeLimit` and `bodySizeLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined bodySizeLimit value will inherit the global bodySizeLimit value (Prometheus \\u003e= 2.45.0) or the enforcedBodySizeLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedBodySizeLimit` is greater than the `bodySizeLimit`, the `bodySizeLimit` will be set to `enforcedBodySizeLimit`.\\n* Scrape objects with a bodySizeLimit value less than or equal to enforcedBodySizeLimit keep their specific value.\\n* Scrape objects with a bodySizeLimit value greater than enforcedBodySizeLimit are set to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"enforcedKeepDroppedTargets\": {\n \"description\": \"When defined, enforcedKeepDroppedTargets specifies a global limit on the number of targets\\ndropped by relabeling that will be kept in memory. The value overrides\\nany `spec.keepDroppedTargets` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.keepDroppedTargets` is\\ngreater than zero and less than `spec.enforcedKeepDroppedTargets`.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nWhen both `enforcedKeepDroppedTargets` and `keepDroppedTargets` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined keepDroppedTargets value will inherit the global keepDroppedTargets value (Prometheus \\u003e= 2.45.0) or the enforcedKeepDroppedTargets value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedKeepDroppedTargets` is greater than the `keepDroppedTargets`, the `keepDroppedTargets` will be set to `enforcedKeepDroppedTargets`.\\n* Scrape objects with a keepDroppedTargets value less than or equal to enforcedKeepDroppedTargets keep their specific value.\\n* Scrape objects with a keepDroppedTargets value greater than enforcedKeepDroppedTargets are set to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelLimit\": {\n \"description\": \"When defined, enforcedLabelLimit specifies a global limit on the number\\nof labels per sample. The value overrides any `spec.labelLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelLimit` is\\ngreater than zero and less than `spec.enforcedLabelLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelLimit` and `labelLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelLimit value will inherit the global labelLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelLimit` is greater than the `labelLimit`, the `labelLimit` will be set to `enforcedLabelLimit`.\\n* Scrape objects with a labelLimit value less than or equal to enforcedLabelLimit keep their specific value.\\n* Scrape objects with a labelLimit value greater than enforcedLabelLimit are set to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelNameLengthLimit\": {\n \"description\": \"When defined, enforcedLabelNameLengthLimit specifies a global limit on the length\\nof labels name per sample. The value overrides any `spec.labelNameLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelNameLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelNameLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelNameLengthLimit` and `labelNameLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelNameLengthLimit value will inherit the global labelNameLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelNameLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelNameLengthLimit` is greater than the `labelNameLengthLimit`, the `labelNameLengthLimit` will be set to `enforcedLabelNameLengthLimit`.\\n* Scrape objects with a labelNameLengthLimit value less than or equal to enforcedLabelNameLengthLimit keep their specific value.\\n* Scrape objects with a labelNameLengthLimit value greater than enforcedLabelNameLengthLimit are set to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelValueLengthLimit\": {\n \"description\": \"When not null, enforcedLabelValueLengthLimit defines a global limit on the length\\nof labels value per sample. The value overrides any `spec.labelValueLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelValueLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelValueLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelValueLengthLimit` and `labelValueLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelValueLengthLimit value will inherit the global labelValueLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelValueLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelValueLengthLimit` is greater than the `labelValueLengthLimit`, the `labelValueLengthLimit` will be set to `enforcedLabelValueLengthLimit`.\\n* Scrape objects with a labelValueLengthLimit value less than or equal to enforcedLabelValueLengthLimit keep their specific value.\\n* Scrape objects with a labelValueLengthLimit value greater than enforcedLabelValueLengthLimit are set to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedNamespaceLabel\": {\n \"description\": \"When not empty, a label will be added to:\\n\\n1. All metrics scraped from `ServiceMonitor`, `PodMonitor`, `Probe` and `ScrapeConfig` objects.\\n2. All metrics generated from recording rules defined in `PrometheusRule` objects.\\n3. All alerts generated from alerting rules defined in `PrometheusRule` objects.\\n4. All vector selectors of PromQL expressions defined in `PrometheusRule` objects.\\n\\nThe label will not added for objects referenced in `spec.excludedFromEnforcement`.\\n\\nThe label's name is this field's value.\\nThe label's value is the namespace of the `ServiceMonitor`,\\n`PodMonitor`, `Probe`, `PrometheusRule` or `ScrapeConfig` object.\",\n \"type\": \"string\"\n },\n \"enforcedSampleLimit\": {\n \"description\": \"When defined, enforcedSampleLimit specifies a global limit on the number\\nof scraped samples that will be accepted. This overrides any\\n`spec.sampleLimit` set by ServiceMonitor, PodMonitor, Probe objects\\nunless `spec.sampleLimit` is greater than zero and less than\\n`spec.enforcedSampleLimit`.\\n\\nIt is meant to be used by admins to keep the overall number of\\nsamples/series under a desired limit.\\n\\nWhen both `enforcedSampleLimit` and `sampleLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined sampleLimit value will inherit the global sampleLimit value (Prometheus \\u003e= 2.45.0) or the enforcedSampleLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedSampleLimit` is greater than the `sampleLimit`, the `sampleLimit` will be set to `enforcedSampleLimit`.\\n* Scrape objects with a sampleLimit value less than or equal to enforcedSampleLimit keep their specific value.\\n* Scrape objects with a sampleLimit value greater than enforcedSampleLimit are set to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedTargetLimit\": {\n \"description\": \"When defined, enforcedTargetLimit specifies a global limit on the number\\nof scraped targets. The value overrides any `spec.targetLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.targetLimit` is\\ngreater than zero and less than `spec.enforcedTargetLimit`.\\n\\nIt is meant to be used by admins to to keep the overall number of\\ntargets under a desired limit.\\n\\nWhen both `enforcedTargetLimit` and `targetLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined targetLimit value will inherit the global targetLimit value (Prometheus \\u003e= 2.45.0) or the enforcedTargetLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedTargetLimit` is greater than the `targetLimit`, the `targetLimit` will be set to `enforcedTargetLimit`.\\n* Scrape objects with a targetLimit value less than or equal to enforcedTargetLimit keep their specific value.\\n* Scrape objects with a targetLimit value greater than enforcedTargetLimit are set to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"evaluationInterval\": {\n \"default\": \"30s\",\n \"description\": \"Interval between rule evaluations.\\nDefault: \\\"30s\\\"\",\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 \"excludedFromEnforcement\": {\n \"description\": \"List of references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects\\nto be excluded from enforcing a namespace label of origin.\\n\\nIt is only applicable if `spec.enforcedNamespaceLabel` set to true.\",\n \"items\": {\n \"description\": \"ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object.\",\n \"properties\": {\n \"group\": {\n \"default\": \"monitoring.coreos.com\",\n \"description\": \"Group of the referent. When not specified, it defaults to `monitoring.coreos.com`\",\n \"enum\": [\n \"monitoring.coreos.com\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. When not set, all resources in the namespace are matched.\",\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 \"minLength\": 1,\n \"type\": \"string\"\n },\n \"resource\": {\n \"description\": \"Resource of the referent.\",\n \"enum\": [\n \"prometheusrules\",\n \"servicemonitors\",\n \"podmonitors\",\n \"probes\",\n \"scrapeconfigs\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exemplars\": {\n \"description\": \"Exemplars related settings that are runtime reloadable.\\nIt requires to enable the `exemplar-storage` feature flag to be effective.\",\n \"properties\": {\n \"maxSize\": {\n \"description\": \"Maximum number of exemplars stored in memory for all series.\\n\\nexemplar-storage itself must be enabled using the `spec.enableFeature`\\noption for exemplars to be scraped in the first place.\\n\\nIf not set, Prometheus uses its default value. A value of zero or less\\nthan zero disables the storage.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"externalLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The labels to add to any time series or alerts when communicating with\\nexternal systems (federation, remote storage, Alertmanager).\\nLabels defined by `spec.replicaExternalLabelName` and\\n`spec.prometheusExternalLabelName` take precedence over this list.\",\n \"type\": \"object\"\n },\n \"externalUrl\": {\n \"description\": \"The external URL under which the Prometheus service is externally\\navailable. This is necessary to generate correct URLs (for instance if\\nPrometheus is accessible behind an Ingress resource).\",\n \"type\": \"string\"\n },\n \"hostAliases\": {\n \"description\": \"Optional list of hosts and IPs that will be injected into the Pod's\\nhosts file 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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"hostNetwork\": {\n \"description\": \"Use the host's network namespace if true.\\n\\nMake sure to understand the security implications if you want to enable\\nit (https://kubernetes.io/docs/concepts/configuration/overview/).\\n\\nWhen hostNetwork is enabled, this will set the DNS policy to\\n`ClusterFirstWithHostNet` automatically (unless `.spec.DNSPolicy` is set\\nto a different value).\",\n \"type\": \"boolean\"\n },\n \"ignoreNamespaceSelectors\": {\n \"description\": \"When true, `spec.namespaceSelector` from all PodMonitor, ServiceMonitor\\nand Probe objects will be ignored. They will only discover targets\\nwithin the namespace of the PodMonitor, ServiceMonitor and Probe\\nobject.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Container image name for Prometheus. If specified, it takes precedence\\nover the `spec.baseImage`, `spec.tag` and `spec.sha` fields.\\n\\nSpecifying `spec.version` is still necessary to ensure the Prometheus\\nOperator knows which version of Prometheus is being configured.\\n\\nIf neither `spec.image` nor `spec.baseImage` are defined, the operator\\nwill use the latest upstream version of Prometheus available at the time\\nwhen the operator was released.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'prometheus', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to Secrets in the same namespace\\nto use for pulling images from registries.\\nSee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows injecting initContainers to the Pod definition. Those\\ncan be used to e.g. fetch secrets for injection into the Prometheus\\nconfiguration from external sources. Any errors during the execution of\\nan initContainer will lead to a restart of the Pod. More info:\\nhttps://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nInitContainers described here modify an operator generated init\\ncontainers if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of init container name managed by the operator are:\\n* `init-config-reloader`.\\n\\nOverriding init containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"listenLocal\": {\n \"description\": \"When true, the Prometheus server listens on the loopback address\\ninstead of the Pod IP's address.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\n },\n \"maximumStartupDurationSeconds\": {\n \"description\": \"Defines the maximum time that the `prometheus` container's startup probe will wait before being considered failed. The startup probe will return success after the WAL replay is complete.\\nIf set, the value should be greater than 60 (seconds). Otherwise it will be equal to 600 seconds (15 minutes).\",\n \"format\": \"int32\",\n \"minimum\": 60,\n \"type\": \"integer\"\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\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires\\nenabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nameValidationScheme\": {\n \"description\": \"Specifies the validation scheme for metric and label names.\",\n \"enum\": [\n \"UTF8\",\n \"Legacy\"\n ],\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Defines on which Nodes the Pods are scheduled.\",\n \"type\": \"object\"\n },\n \"otlp\": {\n \"description\": \"Settings related to the OTLP receiver feature.\\nIt requires Prometheus \\u003e= v2.55.0.\",\n \"properties\": {\n \"promoteResourceAttributes\": {\n \"description\": \"List of OpenTelemetry Attributes that should be promoted to metric labels, defaults to none.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"translationStrategy\": {\n \"description\": \"Configures how the OTLP receiver endpoint translates the incoming metrics.\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"NoUTF8EscapingWithSuffixes\",\n \"UnderscoreEscapingWithSuffixes\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"overrideHonorLabels\": {\n \"description\": \"When true, Prometheus resolves label conflicts by renaming the labels in the scraped data\\n to “exported_” for all targets created from ServiceMonitor, PodMonitor and\\nScrapeConfig objects. Otherwise the HonorLabels field of the service or pod monitor applies.\\nIn practice,`overrideHonorLaels:true` enforces `honorLabels:false`\\nfor all ServiceMonitor, PodMonitor and ScrapeConfig objects.\",\n \"type\": \"boolean\"\n },\n \"overrideHonorTimestamps\": {\n \"description\": \"When true, Prometheus ignores the timestamps for all the targets created\\nfrom service and pod monitors.\\nOtherwise the HonorTimestamps field of the service or pod monitor applies.\",\n \"type\": \"boolean\"\n },\n \"paused\": {\n \"description\": \"When a Prometheus deployment is paused, no actions except for deletion\\nwill be performed on the underlying objects.\",\n \"type\": \"boolean\"\n },\n \"persistentVolumeClaimRetentionPolicy\": {\n \"description\": \"The field controls if and how PVCs are deleted during the lifecycle of a StatefulSet.\\nThe default behavior is all PVCs are retained.\\nThis is an alpha field from kubernetes 1.23 until 1.26 and a beta field from 1.26.\\nIt requires enabling the StatefulSetAutoDeletePVC feature gate.\",\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 \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the Prometheus pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"prometheus\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"prometheus\\\".\\n* \\\"app.kubernetes.io/version\\\" label, set to the Prometheus version.\\n* \\\"operator.prometheus.io/name\\\" label, set to the name of the Prometheus object.\\n* \\\"operator.prometheus.io/shard\\\" label, set to the shard number of the Prometheus object.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"prometheus\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"podMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for PodMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podMonitorSelector\": {\n \"description\": \"PodMonitors to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podTargetLabels\": {\n \"description\": \"PodTargetLabels are appended to the `spec.podTargetLabels` field of all\\nPodMonitor and ServiceMonitor objects.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefault: \\\"web\\\"\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods.\",\n \"type\": \"string\"\n },\n \"probeNamespaceSelector\": {\n \"description\": \"Namespaces to match for Probe discovery. An empty label\\nselector matches all namespaces. A null label selector matches the\\ncurrent namespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"probeSelector\": {\n \"description\": \"Probes to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"prometheusExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the Prometheus instance\\nname. The external label will _not_ be added when the field is set to\\nthe empty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus\\\"\",\n \"type\": \"string\"\n },\n \"prometheusRulesExcludedFromEnforce\": {\n \"description\": \"Defines the list of PrometheusRule objects to which the namespace label\\nenforcement doesn't apply.\\nThis is only relevant when `spec.enforcedNamespaceLabel` is set to true.\\nDeprecated: use `spec.excludedFromEnforcement` instead.\",\n \"items\": {\n \"description\": \"PrometheusRuleExcludeConfig enables users to configure excluded\\nPrometheusRule names and their namespaces to be ignored while enforcing\\nnamespace label for alerts and metrics.\",\n \"properties\": {\n \"ruleName\": {\n \"description\": \"Name of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n },\n \"ruleNamespace\": {\n \"description\": \"Namespace of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ruleName\",\n \"ruleNamespace\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"query\": {\n \"description\": \"QuerySpec defines the configuration of the Promethus query service.\",\n \"properties\": {\n \"lookbackDelta\": {\n \"description\": \"The delta difference allowed for retrieving metrics during expression evaluations.\",\n \"type\": \"string\"\n },\n \"maxConcurrency\": {\n \"description\": \"Number of concurrent queries that can be run at once.\",\n \"format\": \"int32\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"maxSamples\": {\n \"description\": \"Maximum number of samples a single query can load into memory. Note that\\nqueries will fail if they would load more samples than this into memory,\\nso this also limits the number of samples a query can return.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeout\": {\n \"description\": \"Maximum time a query may take before being aborted.\",\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 },\n \"type\": \"object\"\n },\n \"queryLogFile\": {\n \"description\": \"queryLogFile specifies where the file to which PromQL queries are logged.\\n\\nIf the filename has an empty path, e.g. 'query.log', The Prometheus Pods\\nwill mount the file into an emptyDir volume at `/var/log/prometheus`.\\nIf a full path is provided, e.g. '/var/log/prometheus/query.log', you\\nmust mount a volume in the specified directory and it must be writable.\\nThis is because the prometheus container runs with a read-only root\\nfilesystem for security reasons.\\nAlternatively, the location can be set to a standard I/O stream, e.g.\\n`/dev/stdout`, to log query information to the default Prometheus log\\nstream.\",\n \"type\": \"string\"\n },\n \"reloadStrategy\": {\n \"description\": \"Defines the strategy used to reload the Prometheus configuration.\\nIf not specified, the configuration is reloaded using the /-/reload HTTP endpoint.\",\n \"enum\": [\n \"HTTP\",\n \"ProcessSignal\"\n ],\n \"type\": \"string\"\n },\n \"remoteRead\": {\n \"description\": \"Defines the list of remote read configurations.\",\n \"items\": {\n \"description\": \"RemoteReadSpec defines the configuration for Prometheus to read back samples\\nfrom a remote endpoint.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the URL.\\n\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File from which to read the bearer token for the URL.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"filterExternalLabels\": {\n \"description\": \"Whether to use the external labels as selectors for the remote read endpoint.\\n\\nIt requires Prometheus \\u003e= v2.34.0.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Custom HTTP headers to be sent along with each remote read request.\\nBe aware that headers that are set by Prometheus itself can't be overwritten.\\nOnly valid in Prometheus versions 2.26.0 and newer.\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the remote read queue, it must be unique if specified. The\\nname is used in metrics and logging in order to differentiate read\\nconfigurations.\\n\\nIt requires Prometheus \\u003e= v2.15.0.\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration for the URL.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"readRecent\": {\n \"description\": \"Whether reads should be made for queries for time ranges that\\nthe local storage should have complete data for.\",\n \"type\": \"boolean\"\n },\n \"remoteTimeout\": {\n \"description\": \"Timeout for requests to the remote read endpoint.\",\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 \"requiredMatchers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"An optional list of equality matchers which have to be present\\nin a selector to query the remote read endpoint.\",\n \"type\": \"object\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS Config to use for the URL.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the endpoint to query from.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"remoteWrite\": {\n \"description\": \"Defines the list of remote write configurations.\",\n \"items\": {\n \"description\": \"RemoteWriteSpec defines the configuration to write samples from Prometheus\\nto a remote endpoint.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"azureAd\": {\n \"description\": \"AzureAD for the URL.\\n\\nIt requires Prometheus \\u003e= v2.45.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`.\",\n \"properties\": {\n \"cloud\": {\n \"description\": \"The Azure Cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.\",\n \"enum\": [\n \"AzureChina\",\n \"AzureGovernment\",\n \"AzurePublic\"\n ],\n \"type\": \"string\"\n },\n \"managedIdentity\": {\n \"description\": \"ManagedIdentity defines the Azure User-assigned Managed identity.\\nCannot be set at the same time as `oauth` or `sdk`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"The client id\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\"\n ],\n \"type\": \"object\"\n },\n \"oauth\": {\n \"description\": \"OAuth defines the oauth config that is being used to authenticate.\\nCannot be set at the same time as `managedIdentity` or `sdk`.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientID` is the clientId of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the client secret of the Azure Active Directory application that is being used to authenticate.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tenantId\"\n ],\n \"type\": \"object\"\n },\n \"sdk\": {\n \"description\": \"SDK defines the Azure SDK config that is being used to authenticate.\\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\\nCannot be set at the same time as `oauth` or `managedIdentity`.\\n\\nIt requires Prometheus \\u003e= 2.52.0.\",\n \"properties\": {\n \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the azure active directory application that is being used to authenticate.\",\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the URL.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File from which to read bearer token for the URL.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Custom HTTP headers to be sent along with each remote write request.\\nBe aware that headers that are set by Prometheus itself can't be overwritten.\\n\\nIt requires Prometheus \\u003e= v2.25.0.\",\n \"type\": \"object\"\n },\n \"messageVersion\": {\n \"description\": \"The Remote Write message's version to use when writing to the endpoint.\\n\\n`Version1.0` corresponds to the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0.\\n`Version2.0` corresponds to the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0.\\n\\nWhen `Version2.0` is selected, Prometheus will automatically be\\nconfigured to append the metadata of scraped metrics to the WAL.\\n\\nBefore setting this field, consult with your remote storage provider\\nwhat message version it supports.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"metadataConfig\": {\n \"description\": \"MetadataConfig configures the sending of series metadata to the remote storage.\",\n \"properties\": {\n \"send\": {\n \"description\": \"Defines whether metric metadata is sent to the remote storage or not.\",\n \"type\": \"boolean\"\n },\n \"sendInterval\": {\n \"description\": \"Defines how frequently metric metadata is sent to the remote storage.\",\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 },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the remote write queue, it must be unique if specified. The\\nname is used in metrics and logging in order to differentiate queues.\\n\\nIt requires Prometheus \\u003e= v2.15.0.\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration for the URL.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"queueConfig\": {\n \"description\": \"QueueConfig allows tuning of the remote write queue parameters.\",\n \"properties\": {\n \"batchSendDeadline\": {\n \"description\": \"BatchSendDeadline is the maximum time a sample will wait in buffer.\",\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 \"capacity\": {\n \"description\": \"Capacity is the number of samples to buffer per shard before we start\\ndropping them.\",\n \"type\": \"integer\"\n },\n \"maxBackoff\": {\n \"description\": \"MaxBackoff is the maximum retry delay.\",\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 \"maxRetries\": {\n \"description\": \"MaxRetries is the maximum number of times to retry a batch on recoverable errors.\",\n \"type\": \"integer\"\n },\n \"maxSamplesPerSend\": {\n \"description\": \"MaxSamplesPerSend is the maximum number of samples per send.\",\n \"type\": \"integer\"\n },\n \"maxShards\": {\n \"description\": \"MaxShards is the maximum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"minBackoff\": {\n \"description\": \"MinBackoff is the initial retry delay. Gets doubled for every retry.\",\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 \"minShards\": {\n \"description\": \"MinShards is the minimum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"retryOnRateLimit\": {\n \"description\": \"Retry upon receiving a 429 status code from the remote-write storage.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"type\": \"boolean\"\n },\n \"sampleAgeLimit\": {\n \"description\": \"SampleAgeLimit drops samples older than the limit.\\nIt requires Prometheus \\u003e= v2.50.0.\",\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 },\n \"type\": \"object\"\n },\n \"remoteTimeout\": {\n \"description\": \"Timeout for requests to the remote write endpoint.\",\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 \"sendExemplars\": {\n \"description\": \"Enables sending of exemplars over remote write. Note that\\nexemplar-storage itself must be enabled using the `spec.enableFeatures`\\noption for exemplars to be scraped in the first place.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"type\": \"boolean\"\n },\n \"sendNativeHistograms\": {\n \"description\": \"Enables sending of native histograms, also known as sparse histograms\\nover remote write.\\n\\nIt requires Prometheus \\u003e= v2.40.0.\",\n \"type\": \"boolean\"\n },\n \"sigv4\": {\n \"description\": \"Sigv4 allows to configures AWS's Signature Verification 4 for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use for the URL.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the endpoint to send samples to.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"writeRelabelConfigs\": {\n \"description\": \"The list of remote write relabel configurations.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"remoteWriteReceiverMessageVersions\": {\n \"description\": \"List of the protobuf message versions to accept when receiving the\\nremote writes.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"items\": {\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"replicaExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the replica name.\\nThe external label will _not_ be added when the field is set to the\\nempty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus_replica\\\"\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Number of replicas of each shard to deploy for a Prometheus deployment.\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\ncreated.\\n\\nDefault: 1\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Defines the resources requests and limits of the 'prometheus' container.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"retention\": {\n \"description\": \"How long to retain the Prometheus data.\\n\\nDefault: \\\"24h\\\" if `spec.retention` and `spec.retentionSize` are empty.\",\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 \"retentionSize\": {\n \"description\": \"Maximum number of bytes used by the Prometheus data.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"routePrefix\": {\n \"description\": \"The route prefix Prometheus registers HTTP handlers for.\\n\\nThis is useful when using `spec.externalURL`, and a proxy is rewriting\\nHTTP routes of a request, and the actual ExternalURL is still true, but\\nthe server serves requests under a different route prefix. For example\\nfor use with `kubectl proxy`.\",\n \"type\": \"string\"\n },\n \"ruleNamespaceSelector\": {\n \"description\": \"Namespaces to match for PrometheusRule discovery. An empty label selector\\nmatches all namespaces. A null label selector matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"ruleQueryOffset\": {\n \"description\": \"Defines the offset the rule evaluation timestamp of this particular group by the specified duration into the past.\\nIt requires Prometheus \\u003e= v2.53.0.\",\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 \"ruleSelector\": {\n \"description\": \"PrometheusRule objects to be selected for rule evaluation. An empty\\nlabel selector matches all objects. A null label selector matches no\\nobjects.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"rules\": {\n \"description\": \"Defines the configuration of the Prometheus rules' engine.\",\n \"properties\": {\n \"alert\": {\n \"description\": \"Defines the parameters of the Prometheus rules' engine.\\n\\nAny update to these parameters trigger a restart of the pods.\",\n \"properties\": {\n \"forGracePeriod\": {\n \"description\": \"Minimum duration between alert and restored 'for' state.\\n\\nThis is maintained only for alerts with a configured 'for' time greater\\nthan the grace period.\",\n \"type\": \"string\"\n },\n \"forOutageTolerance\": {\n \"description\": \"Max time to tolerate prometheus outage for restoring 'for' state of\\nalert.\",\n \"type\": \"string\"\n },\n \"resendDelay\": {\n \"description\": \"Minimum amount of time to wait before resending an alert to\\nAlertmanager.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtime\": {\n \"description\": \"RuntimeConfig configures the values for the Prometheus process behavior\",\n \"properties\": {\n \"goGC\": {\n \"description\": \"The Go garbage collection target percentage. Lowering this number may increase the CPU usage.\\nSee: https://tip.golang.org/doc/gc-guide#GOGC\",\n \"format\": \"int32\",\n \"minimum\": -1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClasses\": {\n \"description\": \"List of scrape classes to expose to scraping objects such as\\nPodMonitors, ServiceMonitors, Probes and ScrapeConfigs.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"items\": {\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"AttachMetadata configures additional metadata to the discovered targets.\\nWhen the scrape object defines its own configuration, it takes\\nprecedence over the scrape class configuration.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"authorization\": {\n \"description\": \"Authorization section for the ScrapeClass.\\nIt will only apply if the scrape resource doesn't specify any Authorization.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"default\": {\n \"description\": \"Default indicates that the scrape applies to all scrape objects that\\ndon't configure an explicit scrape class name.\\n\\nOnly one scrape class can be set as the default.\",\n \"type\": \"boolean\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelings configures the relabeling rules to apply to all samples before ingestion.\\n\\nThe Operator adds the scrape class metric relabelings defined here.\\nThen the Operator adds the target-specific metric relabelings defined in ServiceMonitors, PodMonitors, Probes and ScrapeConfigs.\\nThen the Operator adds namespace enforcement relabeling rule, specified in '.spec.enforcedNamespaceLabel'.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the scrape class.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"Relabelings configures the relabeling rules to apply to all scrape targets.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields\\nlike `__meta_kubernetes_namespace` and `__meta_kubernetes_service_name`.\\nThen the Operator adds the scrape class relabelings defined here.\\nThen the Operator adds the target-specific relabelings defined in the scrape object.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLSConfig defines the TLS settings to use for the scrape. When the\\nscrape objects define their own CA, certificate and/or key, they take\\nprecedence over the corresponding scrape class fields.\\n\\nFor now only the `caFile`, `certFile` and `keyFile` fields are supported.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\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 \"scrapeConfigNamespaceSelector\": {\n \"description\": \"Namespaces to match for ScrapeConfig discovery. An empty label selector\\nmatches all namespaces. A null label selector matches the current\\nnamespace only.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeConfigSelector\": {\n \"description\": \"ScrapeConfigs to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeInterval\": {\n \"default\": \"30s\",\n \"description\": \"Interval between consecutive scrapes.\\n\\nDefault: \\\"30s\\\"\",\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 \"scrapeProtocols\": {\n \"description\": \"The protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\\n\\n`PrometheusText1.0.0` requires Prometheus \\u003e= v3.0.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Number of seconds to wait until a scrape request times out.\",\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 \"secrets\": {\n \"description\": \"Secrets is a list of Secrets in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach Secret is added to the StatefulSet definition as a volume named `secret-\\u003csecret-name\\u003e`.\\nThe Secrets are mounted into /etc/prometheus/secrets/\\u003csecret-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nPrometheus Pods.\",\n \"type\": \"string\"\n },\n \"serviceDiscoveryRole\": {\n \"description\": \"Defines the service discovery role used to discover targets from\\n`ServiceMonitor` objects and Alertmanager endpoints.\\n\\nIf set, the value should be either \\\"Endpoints\\\" or \\\"EndpointSlice\\\".\\nIf unset, the operator assumes the \\\"Endpoints\\\" role.\",\n \"enum\": [\n \"Endpoints\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n },\n \"serviceMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for ServicedMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"serviceMonitorSelector\": {\n \"description\": \"ServiceMonitors to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"sha\": {\n \"description\": \"Deprecated: use 'spec.image' instead. The image's digest can be specified as part of the image name.\",\n \"type\": \"string\"\n },\n \"shards\": {\n \"description\": \"Number of shards to distribute scraped targets onto.\\n\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\nbeing created.\\n\\nWhen not defined, the operator assumes only one shard.\\n\\nNote that scaling down shards will not reshard data onto the remaining\\ninstances, it must be manually moved. Increasing shards will not reshard\\ndata either but it will continue to be available from the same\\ninstances. To query globally, use Thanos sidecar and Thanos querier or\\nremote write data to a central location.\\nAlerting and recording rules\\n\\nBy default, the sharding is performed on:\\n* The `__address__` target's metadata label for PodMonitor,\\nServiceMonitor and ScrapeConfig resources.\\n* The `__param_target__` label for Probe resources.\\n\\nUsers can define their own sharding implementation by setting the\\n`__tmp_hash` label during the target discovery with relabeling\\nconfiguration (either in the monitoring resources or via scrape class).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"storage\": {\n \"description\": \"Storage defines the storage used by Prometheus.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\n },\n \"tag\": {\n \"description\": \"Deprecated: use 'spec.image' instead. The image's tag can be specified as part of the image name.\",\n \"type\": \"string\"\n },\n \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"thanos\": {\n \"description\": \"Defines the configuration of the optional Thanos sidecar.\",\n \"properties\": {\n \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the Thanos container.\\nThe arguments are passed as-is to the Thanos container which may cause issues\\nif they are invalid or not supported the given Thanos version.\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument, the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"baseImage\": {\n \"description\": \"Deprecated: use 'image' instead.\",\n \"type\": \"string\"\n },\n \"blockSize\": {\n \"default\": \"2h\",\n \"description\": \"BlockDuration controls the size of TSDB blocks produced by Prometheus.\\nThe default value is 2h to match the upstream Prometheus defaults.\\n\\nWARNING: Changing the block duration can impact the performance and\\nefficiency of the entire Prometheus/Thanos stack due to how it interacts\\nwith memory and Thanos compactors. It is recommended to keep this value\\nset to a multiple of 120 times your longest scrape or rule interval. For\\nexample, 30s * 120 = 1h.\",\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 \"getConfigInterval\": {\n \"description\": \"How often to retrieve the Prometheus configuration.\",\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 \"getConfigTimeout\": {\n \"description\": \"Maximum time to wait when retrieving the Prometheus configuration.\",\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 \"grpcListenLocal\": {\n \"description\": \"When true, the Thanos sidecar listens on the loopback interface instead\\nof the Pod IP's address for the gRPC endpoints.\\n\\nIt has no effect if `listenLocal` is true.\",\n \"type\": \"boolean\"\n },\n \"grpcServerTlsConfig\": {\n \"description\": \"Configures the TLS parameters for the gRPC server providing the StoreAPI.\\n\\nNote: Currently only the `caFile`, `certFile`, and `keyFile` fields are supported.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpListenLocal\": {\n \"description\": \"When true, the Thanos sidecar listens on the loopback interface instead\\nof the Pod IP's address for the HTTP endpoints.\\n\\nIt has no effect if `listenLocal` is true.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Container image name for Thanos. If specified, it takes precedence over\\nthe `spec.thanos.baseImage`, `spec.thanos.tag` and `spec.thanos.sha`\\nfields.\\n\\nSpecifying `spec.thanos.version` is still necessary to ensure the\\nPrometheus Operator knows which version of Thanos is being configured.\\n\\nIf neither `spec.thanos.image` nor `spec.thanos.baseImage` are defined,\\nthe operator will use the latest upstream version of Thanos available at\\nthe time when the operator was released.\",\n \"type\": \"string\"\n },\n \"listenLocal\": {\n \"description\": \"Deprecated: use `grpcListenLocal` and `httpListenLocal` instead.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for the Thanos sidecar.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for the Thanos sidecar.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\n },\n \"minTime\": {\n \"description\": \"Defines the start of time range limit served by the Thanos sidecar's StoreAPI.\\nThe field's value should be a constant time in RFC3339 format or a time\\nduration relative to current time, such as -1d or 2h45m. Valid duration\\nunits are ms, s, m, h, d, w, y.\",\n \"type\": \"string\"\n },\n \"objectStorageConfig\": {\n \"description\": \"Defines the Thanos sidecar's configuration to upload TSDB blocks to object storage.\\n\\nMore info: https://thanos.io/tip/thanos/storage.md/\\n\\nobjectStorageConfigFile takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"objectStorageConfigFile\": {\n \"description\": \"Defines the Thanos sidecar's configuration file to upload TSDB blocks to object storage.\\n\\nMore info: https://thanos.io/tip/thanos/storage.md/\\n\\nThis field takes precedence over objectStorageConfig.\",\n \"type\": \"string\"\n },\n \"readyTimeout\": {\n \"description\": \"ReadyTimeout is the maximum time that the Thanos sidecar will wait for\\nPrometheus to start.\",\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 \"resources\": {\n \"description\": \"Defines the resources requests and limits of the Thanos sidecar.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"sha\": {\n \"description\": \"Deprecated: use 'image' instead. The image digest can be specified as part of the image name.\",\n \"type\": \"string\"\n },\n \"tag\": {\n \"description\": \"Deprecated: use 'image' instead. The image's tag can be specified as as part of the image name.\",\n \"type\": \"string\"\n },\n \"tracingConfig\": {\n \"description\": \"Defines the tracing configuration for the Thanos sidecar.\\n\\n`tracingConfigFile` takes precedence over this field.\\n\\nMore info: https://thanos.io/tip/thanos/tracing.md/\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tracingConfigFile\": {\n \"description\": \"Defines the tracing configuration file for the Thanos sidecar.\\n\\nThis field takes precedence over `tracingConfig`.\\n\\nMore info: https://thanos.io/tip/thanos/tracing.md/\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of Thanos being deployed. The operator uses this information\\nto generate the Prometheus StatefulSet + configuration files.\\n\\nIf not specified, the operator assumes the latest upstream release of\\nThanos available at the time when the version of the operator was\\nreleased.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows configuration of additional VolumeMounts for Thanos.\\nVolumeMounts specified will be appended to other VolumeMounts in the\\n'thanos-sidecar' container.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"description\": \"Defines the Pods' tolerations if specified.\",\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\": \"Defines the pod's topology spread constraints if specified.\",\n \"items\": {\n \"properties\": {\n \"additionalLabelSelectors\": {\n \"description\": \"Defines what Prometheus Operator managed labels should be added to labelSelector on the topologySpreadConstraint.\",\n \"enum\": [\n \"OnResource\",\n \"OnShard\"\n ],\n \"type\": \"string\"\n },\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\\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\\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\\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\\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 \"tracingConfig\": {\n \"description\": \"TracingConfig configures tracing in Prometheus.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"properties\": {\n \"clientType\": {\n \"description\": \"Client used to export the traces. Supported values are `http` or `grpc`.\",\n \"enum\": [\n \"http\",\n \"grpc\"\n ],\n \"type\": \"string\"\n },\n \"compression\": {\n \"description\": \"Compression key for supported compression types. The only supported value is `gzip`.\",\n \"enum\": [\n \"gzip\"\n ],\n \"type\": \"string\"\n },\n \"endpoint\": {\n \"description\": \"Endpoint to send the traces to. Should be provided in format \\u003chost\\u003e:\\u003cport\\u003e.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs to be used as headers associated with gRPC or HTTP requests.\",\n \"type\": \"object\"\n },\n \"insecure\": {\n \"description\": \"If disabled, the client will use a secure connection.\",\n \"type\": \"boolean\"\n },\n \"samplingFraction\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Sets the probability a given trace will be sampled. Must be a float from 0 through 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 \"timeout\": {\n \"description\": \"Maximum time the exporter will wait for each batch export.\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use when sending traces.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"endpoint\"\n ],\n \"type\": \"object\"\n },\n \"tsdb\": {\n \"description\": \"Defines the runtime reloadable configuration of the timeseries database(TSDB).\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\n \"properties\": {\n \"outOfOrderTimeWindow\": {\n \"description\": \"Configures how old an out-of-order/out-of-bounds sample can be with\\nrespect to the TSDB max time.\\n\\nAn out-of-order/out-of-bounds sample is ingested into the TSDB as long as\\nthe timestamp of the sample is \\u003e= (TSDB.MaxTime - outOfOrderTimeWindow).\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\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 },\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"Version of Prometheus being deployed. The operator uses this information\\nto generate the Prometheus StatefulSet + configuration files.\\n\\nIf not specified, the operator assumes the latest upstream version of\\nPrometheus available at the time when the version of the operator was\\nreleased.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows the configuration of additional VolumeMounts.\\n\\nVolumeMounts will be appended to other VolumeMounts in the 'prometheus'\\ncontainer, that are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows the configuration of additional volumes on the output\\nStatefulSet definition. Volumes specified will be appended to other\\nvolumes that are generated as a result of StorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"walCompression\": {\n \"description\": \"Configures compression of the write-ahead log (WAL) using Snappy.\\n\\nWAL compression is enabled by default for Prometheus \\u003e= 2.20.0\\n\\nRequires Prometheus v2.11.0 and above.\",\n \"type\": \"boolean\"\n },\n \"web\": {\n \"description\": \"Defines the configuration of the Prometheus web server.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"maxConnections\": {\n \"description\": \"Defines the maximum number of simultaneous connections\\nA zero value means that Prometheus doesn't accept any incoming connection.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"pageTitle\": {\n \"description\": \"The prometheus web page title.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Prometheus\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Prometheus", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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\" width='434.72' height='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" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PrometheusAgent.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PrometheusAgent.json new file mode 100644 index 00000000000..e3524a9426f --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PrometheusAgent.json @@ -0,0 +1,197 @@ +{ + "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": "PrometheusAgent", + "schema": "{\n \"description\": \"The `PrometheusAgent` custom resource definition (CRD) defines a desired [Prometheus Agent](https://prometheus.io/blog/2021/11/16/agent/) setup to run in a Kubernetes cluster.\\n\\nThe CRD is very similar to the `Prometheus` CRD except for features which aren't available in agent mode like rule evaluation, persistent storage and Thanos sidecar.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the Prometheus agent. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the 'prometheus' container.\\n\\nIt is intended for e.g. activating hidden flags which are not supported by\\nthe dedicated configuration options yet. The arguments are passed as-is to the\\nPrometheus container which may cause issues if they are invalid or not supported\\nby the given Prometheus version.\\n\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument, the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"additionalScrapeConfigs\": {\n \"description\": \"AdditionalScrapeConfigs allows specifying a key of a Secret containing\\nadditional Prometheus scrape configurations. Scrape configurations\\nspecified are appended to the configurations generated by the Prometheus\\nOperator. Job configurations specified must have the form as specified\\nin the official Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.\\nAs scrape configs are appended, the user is responsible to make sure it\\nis valid. Note that using this feature may expose the possibility to\\nbreak upgrades of Prometheus. It is advised to review Prometheus release\\nnotes to ensure that no incompatible scrape configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\": \"Defines the Pods' affinity scheduling rules if specified.\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"apiserverConfig\": {\n \"description\": \"APIServerConfig allows specifying a host and auth methods to access the\\nKuberntees API server.\\nIf null, Prometheus is assumed to run inside of the cluster: it will\\ndiscover the API servers automatically and use the Pod's CA certificate\\nand bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the API server.\\n\\nCannot be set at the same time as `basicAuth`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the API server.\\n\\nCannot be set at the same time as `authorization`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for accessing apiserver.\\n\\nCannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"host\": {\n \"description\": \"Kubernetes API address consisting of a hostname or IP address followed\\nby an optional port number.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS Config to use for the API server.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\"\n ],\n \"type\": \"object\"\n },\n \"arbitraryFSAccessThroughSMs\": {\n \"description\": \"When true, ServiceMonitor, PodMonitor and Probe object are forbidden to\\nreference arbitrary files on the file system of the 'prometheus'\\ncontainer.\\nWhen a ServiceMonitor's endpoint specifies a `bearerTokenFile` value\\n(e.g. '/var/run/secrets/kubernetes.io/serviceaccount/token'), a\\nmalicious target can get access to the Prometheus service account's\\ntoken in the Prometheus' scrape request. Setting\\n`spec.arbitraryFSAccessThroughSM` to 'true' would prevent the attack.\\nUsers should instead provide the credentials using the\\n`spec.bearerTokenSecret` field.\",\n \"properties\": {\n \"deny\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod.\\nIf the field isn't set, the operator mounts the service account token by default.\\n\\n**Warning:** be aware that by default, Prometheus requires the service account token for Kubernetes service discovery.\\nIt is possible to use strategic merge patch to project the service account token into the 'prometheus' container.\",\n \"type\": \"boolean\"\n },\n \"bodySizeLimit\": {\n \"description\": \"BodySizeLimit defines per-scrape on response body size.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"configMaps\": {\n \"description\": \"ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach ConfigMap is added to the StatefulSet definition as a volume named `configmap-\\u003cconfigmap-name\\u003e`.\\nThe ConfigMaps are mounted into /etc/prometheus/configmaps/\\u003cconfigmap-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers or modifying operator\\ngenerated containers. This can be used to allow adding an authentication\\nproxy to the Pods or to change the behavior of an operator generated\\ncontainer. Containers described here modify an operator generated\\ncontainer if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of containers managed by the operator are:\\n* `prometheus`\\n* `config-reloader`\\n* `thanos-sidecar`\\n\\nOverriding containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enableFeatures\": {\n \"description\": \"Enable access to Prometheus feature flags. By default, no features are enabled.\\n\\nEnabling features which are disabled by default is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept\\nthat this behaviour may break at any time without notice.\\n\\nFor more information see https://prometheus.io/docs/prometheus/latest/feature_flags/\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"enableOTLPReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the OTLP Metrics protocol.\\n\\nNote that the OTLP receiver endpoint is automatically enabled if `.spec.otlpConfig` is defined.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"type\": \"boolean\"\n },\n \"enableRemoteWriteReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the Prometheus remote\\nwrite protocol.\\n\\nWARNING: This is not considered an efficient way of ingesting samples.\\nUse it with caution for specific low-volume use cases.\\nIt is not suitable for replacing the ingestion via scraping and turning\\nPrometheus into a push-based metrics collection system.\\nFor more information see https://prometheus.io/docs/prometheus/latest/querying/api/#remote-write-receiver\\n\\nIt requires Prometheus \\u003e= v2.33.0.\",\n \"type\": \"boolean\"\n },\n \"enforcedBodySizeLimit\": {\n \"description\": \"When defined, enforcedBodySizeLimit specifies a global limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\nTargets responding with a body larger than this many bytes will cause\\nthe scrape to fail.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\\n\\nWhen both `enforcedBodySizeLimit` and `bodySizeLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined bodySizeLimit value will inherit the global bodySizeLimit value (Prometheus \\u003e= 2.45.0) or the enforcedBodySizeLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedBodySizeLimit` is greater than the `bodySizeLimit`, the `bodySizeLimit` will be set to `enforcedBodySizeLimit`.\\n* Scrape objects with a bodySizeLimit value less than or equal to enforcedBodySizeLimit keep their specific value.\\n* Scrape objects with a bodySizeLimit value greater than enforcedBodySizeLimit are set to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"enforcedKeepDroppedTargets\": {\n \"description\": \"When defined, enforcedKeepDroppedTargets specifies a global limit on the number of targets\\ndropped by relabeling that will be kept in memory. The value overrides\\nany `spec.keepDroppedTargets` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.keepDroppedTargets` is\\ngreater than zero and less than `spec.enforcedKeepDroppedTargets`.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nWhen both `enforcedKeepDroppedTargets` and `keepDroppedTargets` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined keepDroppedTargets value will inherit the global keepDroppedTargets value (Prometheus \\u003e= 2.45.0) or the enforcedKeepDroppedTargets value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedKeepDroppedTargets` is greater than the `keepDroppedTargets`, the `keepDroppedTargets` will be set to `enforcedKeepDroppedTargets`.\\n* Scrape objects with a keepDroppedTargets value less than or equal to enforcedKeepDroppedTargets keep their specific value.\\n* Scrape objects with a keepDroppedTargets value greater than enforcedKeepDroppedTargets are set to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelLimit\": {\n \"description\": \"When defined, enforcedLabelLimit specifies a global limit on the number\\nof labels per sample. The value overrides any `spec.labelLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelLimit` is\\ngreater than zero and less than `spec.enforcedLabelLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelLimit` and `labelLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelLimit value will inherit the global labelLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelLimit` is greater than the `labelLimit`, the `labelLimit` will be set to `enforcedLabelLimit`.\\n* Scrape objects with a labelLimit value less than or equal to enforcedLabelLimit keep their specific value.\\n* Scrape objects with a labelLimit value greater than enforcedLabelLimit are set to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelNameLengthLimit\": {\n \"description\": \"When defined, enforcedLabelNameLengthLimit specifies a global limit on the length\\nof labels name per sample. The value overrides any `spec.labelNameLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelNameLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelNameLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelNameLengthLimit` and `labelNameLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelNameLengthLimit value will inherit the global labelNameLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelNameLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelNameLengthLimit` is greater than the `labelNameLengthLimit`, the `labelNameLengthLimit` will be set to `enforcedLabelNameLengthLimit`.\\n* Scrape objects with a labelNameLengthLimit value less than or equal to enforcedLabelNameLengthLimit keep their specific value.\\n* Scrape objects with a labelNameLengthLimit value greater than enforcedLabelNameLengthLimit are set to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelValueLengthLimit\": {\n \"description\": \"When not null, enforcedLabelValueLengthLimit defines a global limit on the length\\nof labels value per sample. The value overrides any `spec.labelValueLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelValueLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelValueLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelValueLengthLimit` and `labelValueLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelValueLengthLimit value will inherit the global labelValueLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelValueLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelValueLengthLimit` is greater than the `labelValueLengthLimit`, the `labelValueLengthLimit` will be set to `enforcedLabelValueLengthLimit`.\\n* Scrape objects with a labelValueLengthLimit value less than or equal to enforcedLabelValueLengthLimit keep their specific value.\\n* Scrape objects with a labelValueLengthLimit value greater than enforcedLabelValueLengthLimit are set to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedNamespaceLabel\": {\n \"description\": \"When not empty, a label will be added to:\\n\\n1. All metrics scraped from `ServiceMonitor`, `PodMonitor`, `Probe` and `ScrapeConfig` objects.\\n2. All metrics generated from recording rules defined in `PrometheusRule` objects.\\n3. All alerts generated from alerting rules defined in `PrometheusRule` objects.\\n4. All vector selectors of PromQL expressions defined in `PrometheusRule` objects.\\n\\nThe label will not added for objects referenced in `spec.excludedFromEnforcement`.\\n\\nThe label's name is this field's value.\\nThe label's value is the namespace of the `ServiceMonitor`,\\n`PodMonitor`, `Probe`, `PrometheusRule` or `ScrapeConfig` object.\",\n \"type\": \"string\"\n },\n \"enforcedSampleLimit\": {\n \"description\": \"When defined, enforcedSampleLimit specifies a global limit on the number\\nof scraped samples that will be accepted. This overrides any\\n`spec.sampleLimit` set by ServiceMonitor, PodMonitor, Probe objects\\nunless `spec.sampleLimit` is greater than zero and less than\\n`spec.enforcedSampleLimit`.\\n\\nIt is meant to be used by admins to keep the overall number of\\nsamples/series under a desired limit.\\n\\nWhen both `enforcedSampleLimit` and `sampleLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined sampleLimit value will inherit the global sampleLimit value (Prometheus \\u003e= 2.45.0) or the enforcedSampleLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedSampleLimit` is greater than the `sampleLimit`, the `sampleLimit` will be set to `enforcedSampleLimit`.\\n* Scrape objects with a sampleLimit value less than or equal to enforcedSampleLimit keep their specific value.\\n* Scrape objects with a sampleLimit value greater than enforcedSampleLimit are set to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedTargetLimit\": {\n \"description\": \"When defined, enforcedTargetLimit specifies a global limit on the number\\nof scraped targets. The value overrides any `spec.targetLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.targetLimit` is\\ngreater than zero and less than `spec.enforcedTargetLimit`.\\n\\nIt is meant to be used by admins to to keep the overall number of\\ntargets under a desired limit.\\n\\nWhen both `enforcedTargetLimit` and `targetLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined targetLimit value will inherit the global targetLimit value (Prometheus \\u003e= 2.45.0) or the enforcedTargetLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedTargetLimit` is greater than the `targetLimit`, the `targetLimit` will be set to `enforcedTargetLimit`.\\n* Scrape objects with a targetLimit value less than or equal to enforcedTargetLimit keep their specific value.\\n* Scrape objects with a targetLimit value greater than enforcedTargetLimit are set to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"excludedFromEnforcement\": {\n \"description\": \"List of references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects\\nto be excluded from enforcing a namespace label of origin.\\n\\nIt is only applicable if `spec.enforcedNamespaceLabel` set to true.\",\n \"items\": {\n \"description\": \"ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object.\",\n \"properties\": {\n \"group\": {\n \"default\": \"monitoring.coreos.com\",\n \"description\": \"Group of the referent. When not specified, it defaults to `monitoring.coreos.com`\",\n \"enum\": [\n \"monitoring.coreos.com\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. When not set, all resources in the namespace are matched.\",\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 \"minLength\": 1,\n \"type\": \"string\"\n },\n \"resource\": {\n \"description\": \"Resource of the referent.\",\n \"enum\": [\n \"prometheusrules\",\n \"servicemonitors\",\n \"podmonitors\",\n \"probes\",\n \"scrapeconfigs\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"externalLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The labels to add to any time series or alerts when communicating with\\nexternal systems (federation, remote storage, Alertmanager).\\nLabels defined by `spec.replicaExternalLabelName` and\\n`spec.prometheusExternalLabelName` take precedence over this list.\",\n \"type\": \"object\"\n },\n \"externalUrl\": {\n \"description\": \"The external URL under which the Prometheus service is externally\\navailable. This is necessary to generate correct URLs (for instance if\\nPrometheus is accessible behind an Ingress resource).\",\n \"type\": \"string\"\n },\n \"hostAliases\": {\n \"description\": \"Optional list of hosts and IPs that will be injected into the Pod's\\nhosts file 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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"hostNetwork\": {\n \"description\": \"Use the host's network namespace if true.\\n\\nMake sure to understand the security implications if you want to enable\\nit (https://kubernetes.io/docs/concepts/configuration/overview/).\\n\\nWhen hostNetwork is enabled, this will set the DNS policy to\\n`ClusterFirstWithHostNet` automatically (unless `.spec.DNSPolicy` is set\\nto a different value).\",\n \"type\": \"boolean\"\n },\n \"ignoreNamespaceSelectors\": {\n \"description\": \"When true, `spec.namespaceSelector` from all PodMonitor, ServiceMonitor\\nand Probe objects will be ignored. They will only discover targets\\nwithin the namespace of the PodMonitor, ServiceMonitor and Probe\\nobject.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Container image name for Prometheus. If specified, it takes precedence\\nover the `spec.baseImage`, `spec.tag` and `spec.sha` fields.\\n\\nSpecifying `spec.version` is still necessary to ensure the Prometheus\\nOperator knows which version of Prometheus is being configured.\\n\\nIf neither `spec.image` nor `spec.baseImage` are defined, the operator\\nwill use the latest upstream version of Prometheus available at the time\\nwhen the operator was released.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'prometheus', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to Secrets in the same namespace\\nto use for pulling images from registries.\\nSee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows injecting initContainers to the Pod definition. Those\\ncan be used to e.g. fetch secrets for injection into the Prometheus\\nconfiguration from external sources. Any errors during the execution of\\nan initContainer will lead to a restart of the Pod. More info:\\nhttps://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nInitContainers described here modify an operator generated init\\ncontainers if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of init container name managed by the operator are:\\n* `init-config-reloader`.\\n\\nOverriding init containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"listenLocal\": {\n \"description\": \"When true, the Prometheus server listens on the loopback address\\ninstead of the Pod IP's address.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\n },\n \"maximumStartupDurationSeconds\": {\n \"description\": \"Defines the maximum time that the `prometheus` container's startup probe will wait before being considered failed. The startup probe will return success after the WAL replay is complete.\\nIf set, the value should be greater than 60 (seconds). Otherwise it will be equal to 600 seconds (15 minutes).\",\n \"format\": \"int32\",\n \"minimum\": 60,\n \"type\": \"integer\"\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\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires\\nenabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"mode\": {\n \"description\": \"Mode defines how the Prometheus operator deploys the PrometheusAgent pod(s).\\nFor now this field has no effect.\\n\\n(Alpha) Using this field requires the `PrometheusAgentDaemonSet` feature gate to be enabled.\",\n \"enum\": [\n \"StatefulSet\",\n \"DaemonSet\"\n ],\n \"type\": \"string\"\n },\n \"nameValidationScheme\": {\n \"description\": \"Specifies the validation scheme for metric and label names.\",\n \"enum\": [\n \"UTF8\",\n \"Legacy\"\n ],\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Defines on which Nodes the Pods are scheduled.\",\n \"type\": \"object\"\n },\n \"otlp\": {\n \"description\": \"Settings related to the OTLP receiver feature.\\nIt requires Prometheus \\u003e= v2.55.0.\",\n \"properties\": {\n \"promoteResourceAttributes\": {\n \"description\": \"List of OpenTelemetry Attributes that should be promoted to metric labels, defaults to none.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"translationStrategy\": {\n \"description\": \"Configures how the OTLP receiver endpoint translates the incoming metrics.\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"NoUTF8EscapingWithSuffixes\",\n \"UnderscoreEscapingWithSuffixes\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"overrideHonorLabels\": {\n \"description\": \"When true, Prometheus resolves label conflicts by renaming the labels in the scraped data\\n to “exported_” for all targets created from ServiceMonitor, PodMonitor and\\nScrapeConfig objects. Otherwise the HonorLabels field of the service or pod monitor applies.\\nIn practice,`overrideHonorLaels:true` enforces `honorLabels:false`\\nfor all ServiceMonitor, PodMonitor and ScrapeConfig objects.\",\n \"type\": \"boolean\"\n },\n \"overrideHonorTimestamps\": {\n \"description\": \"When true, Prometheus ignores the timestamps for all the targets created\\nfrom service and pod monitors.\\nOtherwise the HonorTimestamps field of the service or pod monitor applies.\",\n \"type\": \"boolean\"\n },\n \"paused\": {\n \"description\": \"When a Prometheus deployment is paused, no actions except for deletion\\nwill be performed on the underlying objects.\",\n \"type\": \"boolean\"\n },\n \"persistentVolumeClaimRetentionPolicy\": {\n \"description\": \"The field controls if and how PVCs are deleted during the lifecycle of a StatefulSet.\\nThe default behavior is all PVCs are retained.\\nThis is an alpha field from kubernetes 1.23 until 1.26 and a beta field from 1.26.\\nIt requires enabling the StatefulSetAutoDeletePVC feature gate.\",\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 \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the Prometheus pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"prometheus\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"prometheus\\\".\\n* \\\"app.kubernetes.io/version\\\" label, set to the Prometheus version.\\n* \\\"operator.prometheus.io/name\\\" label, set to the name of the Prometheus object.\\n* \\\"operator.prometheus.io/shard\\\" label, set to the shard number of the Prometheus object.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"prometheus\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"podMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for PodMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podMonitorSelector\": {\n \"description\": \"PodMonitors to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podTargetLabels\": {\n \"description\": \"PodTargetLabels are appended to the `spec.podTargetLabels` field of all\\nPodMonitor and ServiceMonitor objects.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefault: \\\"web\\\"\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods.\",\n \"type\": \"string\"\n },\n \"probeNamespaceSelector\": {\n \"description\": \"Namespaces to match for Probe discovery. An empty label\\nselector matches all namespaces. A null label selector matches the\\ncurrent namespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"probeSelector\": {\n \"description\": \"Probes to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"prometheusExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the Prometheus instance\\nname. The external label will _not_ be added when the field is set to\\nthe empty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus\\\"\",\n \"type\": \"string\"\n },\n \"reloadStrategy\": {\n \"description\": \"Defines the strategy used to reload the Prometheus configuration.\\nIf not specified, the configuration is reloaded using the /-/reload HTTP endpoint.\",\n \"enum\": [\n \"HTTP\",\n \"ProcessSignal\"\n ],\n \"type\": \"string\"\n },\n \"remoteWrite\": {\n \"description\": \"Defines the list of remote write configurations.\",\n \"items\": {\n \"description\": \"RemoteWriteSpec defines the configuration to write samples from Prometheus\\nto a remote endpoint.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"azureAd\": {\n \"description\": \"AzureAD for the URL.\\n\\nIt requires Prometheus \\u003e= v2.45.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`.\",\n \"properties\": {\n \"cloud\": {\n \"description\": \"The Azure Cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.\",\n \"enum\": [\n \"AzureChina\",\n \"AzureGovernment\",\n \"AzurePublic\"\n ],\n \"type\": \"string\"\n },\n \"managedIdentity\": {\n \"description\": \"ManagedIdentity defines the Azure User-assigned Managed identity.\\nCannot be set at the same time as `oauth` or `sdk`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"The client id\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\"\n ],\n \"type\": \"object\"\n },\n \"oauth\": {\n \"description\": \"OAuth defines the oauth config that is being used to authenticate.\\nCannot be set at the same time as `managedIdentity` or `sdk`.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientID` is the clientId of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the client secret of the Azure Active Directory application that is being used to authenticate.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tenantId\"\n ],\n \"type\": \"object\"\n },\n \"sdk\": {\n \"description\": \"SDK defines the Azure SDK config that is being used to authenticate.\\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\\nCannot be set at the same time as `oauth` or `managedIdentity`.\\n\\nIt requires Prometheus \\u003e= 2.52.0.\",\n \"properties\": {\n \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the azure active directory application that is being used to authenticate.\",\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the URL.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File from which to read bearer token for the URL.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Custom HTTP headers to be sent along with each remote write request.\\nBe aware that headers that are set by Prometheus itself can't be overwritten.\\n\\nIt requires Prometheus \\u003e= v2.25.0.\",\n \"type\": \"object\"\n },\n \"messageVersion\": {\n \"description\": \"The Remote Write message's version to use when writing to the endpoint.\\n\\n`Version1.0` corresponds to the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0.\\n`Version2.0` corresponds to the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0.\\n\\nWhen `Version2.0` is selected, Prometheus will automatically be\\nconfigured to append the metadata of scraped metrics to the WAL.\\n\\nBefore setting this field, consult with your remote storage provider\\nwhat message version it supports.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"metadataConfig\": {\n \"description\": \"MetadataConfig configures the sending of series metadata to the remote storage.\",\n \"properties\": {\n \"send\": {\n \"description\": \"Defines whether metric metadata is sent to the remote storage or not.\",\n \"type\": \"boolean\"\n },\n \"sendInterval\": {\n \"description\": \"Defines how frequently metric metadata is sent to the remote storage.\",\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 },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the remote write queue, it must be unique if specified. The\\nname is used in metrics and logging in order to differentiate queues.\\n\\nIt requires Prometheus \\u003e= v2.15.0.\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration for the URL.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"queueConfig\": {\n \"description\": \"QueueConfig allows tuning of the remote write queue parameters.\",\n \"properties\": {\n \"batchSendDeadline\": {\n \"description\": \"BatchSendDeadline is the maximum time a sample will wait in buffer.\",\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 \"capacity\": {\n \"description\": \"Capacity is the number of samples to buffer per shard before we start\\ndropping them.\",\n \"type\": \"integer\"\n },\n \"maxBackoff\": {\n \"description\": \"MaxBackoff is the maximum retry delay.\",\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 \"maxRetries\": {\n \"description\": \"MaxRetries is the maximum number of times to retry a batch on recoverable errors.\",\n \"type\": \"integer\"\n },\n \"maxSamplesPerSend\": {\n \"description\": \"MaxSamplesPerSend is the maximum number of samples per send.\",\n \"type\": \"integer\"\n },\n \"maxShards\": {\n \"description\": \"MaxShards is the maximum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"minBackoff\": {\n \"description\": \"MinBackoff is the initial retry delay. Gets doubled for every retry.\",\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 \"minShards\": {\n \"description\": \"MinShards is the minimum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"retryOnRateLimit\": {\n \"description\": \"Retry upon receiving a 429 status code from the remote-write storage.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"type\": \"boolean\"\n },\n \"sampleAgeLimit\": {\n \"description\": \"SampleAgeLimit drops samples older than the limit.\\nIt requires Prometheus \\u003e= v2.50.0.\",\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 },\n \"type\": \"object\"\n },\n \"remoteTimeout\": {\n \"description\": \"Timeout for requests to the remote write endpoint.\",\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 \"sendExemplars\": {\n \"description\": \"Enables sending of exemplars over remote write. Note that\\nexemplar-storage itself must be enabled using the `spec.enableFeatures`\\noption for exemplars to be scraped in the first place.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"type\": \"boolean\"\n },\n \"sendNativeHistograms\": {\n \"description\": \"Enables sending of native histograms, also known as sparse histograms\\nover remote write.\\n\\nIt requires Prometheus \\u003e= v2.40.0.\",\n \"type\": \"boolean\"\n },\n \"sigv4\": {\n \"description\": \"Sigv4 allows to configures AWS's Signature Verification 4 for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use for the URL.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the endpoint to send samples to.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"writeRelabelConfigs\": {\n \"description\": \"The list of remote write relabel configurations.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"remoteWriteReceiverMessageVersions\": {\n \"description\": \"List of the protobuf message versions to accept when receiving the\\nremote writes.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"items\": {\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"replicaExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the replica name.\\nThe external label will _not_ be added when the field is set to the\\nempty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus_replica\\\"\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Number of replicas of each shard to deploy for a Prometheus deployment.\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\ncreated.\\n\\nDefault: 1\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Defines the resources requests and limits of the 'prometheus' container.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"routePrefix\": {\n \"description\": \"The route prefix Prometheus registers HTTP handlers for.\\n\\nThis is useful when using `spec.externalURL`, and a proxy is rewriting\\nHTTP routes of a request, and the actual ExternalURL is still true, but\\nthe server serves requests under a different route prefix. For example\\nfor use with `kubectl proxy`.\",\n \"type\": \"string\"\n },\n \"runtime\": {\n \"description\": \"RuntimeConfig configures the values for the Prometheus process behavior\",\n \"properties\": {\n \"goGC\": {\n \"description\": \"The Go garbage collection target percentage. Lowering this number may increase the CPU usage.\\nSee: https://tip.golang.org/doc/gc-guide#GOGC\",\n \"format\": \"int32\",\n \"minimum\": -1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClasses\": {\n \"description\": \"List of scrape classes to expose to scraping objects such as\\nPodMonitors, ServiceMonitors, Probes and ScrapeConfigs.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"items\": {\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"AttachMetadata configures additional metadata to the discovered targets.\\nWhen the scrape object defines its own configuration, it takes\\nprecedence over the scrape class configuration.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"authorization\": {\n \"description\": \"Authorization section for the ScrapeClass.\\nIt will only apply if the scrape resource doesn't specify any Authorization.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"default\": {\n \"description\": \"Default indicates that the scrape applies to all scrape objects that\\ndon't configure an explicit scrape class name.\\n\\nOnly one scrape class can be set as the default.\",\n \"type\": \"boolean\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelings configures the relabeling rules to apply to all samples before ingestion.\\n\\nThe Operator adds the scrape class metric relabelings defined here.\\nThen the Operator adds the target-specific metric relabelings defined in ServiceMonitors, PodMonitors, Probes and ScrapeConfigs.\\nThen the Operator adds namespace enforcement relabeling rule, specified in '.spec.enforcedNamespaceLabel'.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the scrape class.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"Relabelings configures the relabeling rules to apply to all scrape targets.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields\\nlike `__meta_kubernetes_namespace` and `__meta_kubernetes_service_name`.\\nThen the Operator adds the scrape class relabelings defined here.\\nThen the Operator adds the target-specific relabelings defined in the scrape object.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLSConfig defines the TLS settings to use for the scrape. When the\\nscrape objects define their own CA, certificate and/or key, they take\\nprecedence over the corresponding scrape class fields.\\n\\nFor now only the `caFile`, `certFile` and `keyFile` fields are supported.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\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 \"scrapeConfigNamespaceSelector\": {\n \"description\": \"Namespaces to match for ScrapeConfig discovery. An empty label selector\\nmatches all namespaces. A null label selector matches the current\\nnamespace only.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeConfigSelector\": {\n \"description\": \"ScrapeConfigs to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeInterval\": {\n \"default\": \"30s\",\n \"description\": \"Interval between consecutive scrapes.\\n\\nDefault: \\\"30s\\\"\",\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 \"scrapeProtocols\": {\n \"description\": \"The protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\\n\\n`PrometheusText1.0.0` requires Prometheus \\u003e= v3.0.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Number of seconds to wait until a scrape request times out.\",\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 \"secrets\": {\n \"description\": \"Secrets is a list of Secrets in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach Secret is added to the StatefulSet definition as a volume named `secret-\\u003csecret-name\\u003e`.\\nThe Secrets are mounted into /etc/prometheus/secrets/\\u003csecret-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nPrometheus Pods.\",\n \"type\": \"string\"\n },\n \"serviceDiscoveryRole\": {\n \"description\": \"Defines the service discovery role used to discover targets from\\n`ServiceMonitor` objects and Alertmanager endpoints.\\n\\nIf set, the value should be either \\\"Endpoints\\\" or \\\"EndpointSlice\\\".\\nIf unset, the operator assumes the \\\"Endpoints\\\" role.\",\n \"enum\": [\n \"Endpoints\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n },\n \"serviceMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for ServicedMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"serviceMonitorSelector\": {\n \"description\": \"ServiceMonitors to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"shards\": {\n \"description\": \"Number of shards to distribute scraped targets onto.\\n\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\nbeing created.\\n\\nWhen not defined, the operator assumes only one shard.\\n\\nNote that scaling down shards will not reshard data onto the remaining\\ninstances, it must be manually moved. Increasing shards will not reshard\\ndata either but it will continue to be available from the same\\ninstances. To query globally, use Thanos sidecar and Thanos querier or\\nremote write data to a central location.\\nAlerting and recording rules\\n\\nBy default, the sharding is performed on:\\n* The `__address__` target's metadata label for PodMonitor,\\nServiceMonitor and ScrapeConfig resources.\\n* The `__param_target__` label for Probe resources.\\n\\nUsers can define their own sharding implementation by setting the\\n`__tmp_hash` label during the target discovery with relabeling\\nconfiguration (either in the monitoring resources or via scrape class).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"storage\": {\n \"description\": \"Storage defines the storage used by Prometheus.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\n },\n \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"Defines the Pods' tolerations if specified.\",\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\": \"Defines the pod's topology spread constraints if specified.\",\n \"items\": {\n \"properties\": {\n \"additionalLabelSelectors\": {\n \"description\": \"Defines what Prometheus Operator managed labels should be added to labelSelector on the topologySpreadConstraint.\",\n \"enum\": [\n \"OnResource\",\n \"OnShard\"\n ],\n \"type\": \"string\"\n },\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\\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\\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\\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\\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 \"tracingConfig\": {\n \"description\": \"TracingConfig configures tracing in Prometheus.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"properties\": {\n \"clientType\": {\n \"description\": \"Client used to export the traces. Supported values are `http` or `grpc`.\",\n \"enum\": [\n \"http\",\n \"grpc\"\n ],\n \"type\": \"string\"\n },\n \"compression\": {\n \"description\": \"Compression key for supported compression types. The only supported value is `gzip`.\",\n \"enum\": [\n \"gzip\"\n ],\n \"type\": \"string\"\n },\n \"endpoint\": {\n \"description\": \"Endpoint to send the traces to. Should be provided in format \\u003chost\\u003e:\\u003cport\\u003e.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs to be used as headers associated with gRPC or HTTP requests.\",\n \"type\": \"object\"\n },\n \"insecure\": {\n \"description\": \"If disabled, the client will use a secure connection.\",\n \"type\": \"boolean\"\n },\n \"samplingFraction\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Sets the probability a given trace will be sampled. Must be a float from 0 through 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 \"timeout\": {\n \"description\": \"Maximum time the exporter will wait for each batch export.\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use when sending traces.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"endpoint\"\n ],\n \"type\": \"object\"\n },\n \"tsdb\": {\n \"description\": \"Defines the runtime reloadable configuration of the timeseries database(TSDB).\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\n \"properties\": {\n \"outOfOrderTimeWindow\": {\n \"description\": \"Configures how old an out-of-order/out-of-bounds sample can be with\\nrespect to the TSDB max time.\\n\\nAn out-of-order/out-of-bounds sample is ingested into the TSDB as long as\\nthe timestamp of the sample is \\u003e= (TSDB.MaxTime - outOfOrderTimeWindow).\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\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 },\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"Version of Prometheus being deployed. The operator uses this information\\nto generate the Prometheus StatefulSet + configuration files.\\n\\nIf not specified, the operator assumes the latest upstream version of\\nPrometheus available at the time when the version of the operator was\\nreleased.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows the configuration of additional VolumeMounts.\\n\\nVolumeMounts will be appended to other VolumeMounts in the 'prometheus'\\ncontainer, that are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows the configuration of additional volumes on the output\\nStatefulSet definition. Volumes specified will be appended to other\\nvolumes that are generated as a result of StorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"walCompression\": {\n \"description\": \"Configures compression of the write-ahead log (WAL) using Snappy.\\n\\nWAL compression is enabled by default for Prometheus \\u003e= 2.20.0\\n\\nRequires Prometheus v2.11.0 and above.\",\n \"type\": \"boolean\"\n },\n \"web\": {\n \"description\": \"Defines the configuration of the Prometheus web server.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"maxConnections\": {\n \"description\": \"Defines the maximum number of simultaneous connections\\nA zero value means that Prometheus doesn't accept any incoming connection.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"pageTitle\": {\n \"description\": \"The prometheus web page title.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Prometheus Agent\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Prometheus Agent", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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\" width='434.72' height='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" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PrometheusRule.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PrometheusRule.json new file mode 100644 index 00000000000..88fe6aace7b --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/PrometheusRule.json @@ -0,0 +1,196 @@ +{ + "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": "PrometheusRule", + "schema": "{\n \"description\": \"The `PrometheusRule` custom resource definition (CRD) defines [alerting](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) and [recording](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/) rules to be evaluated by `Prometheus` or `ThanosRuler` objects.\\n\\n`Prometheus` and `ThanosRuler` objects select `PrometheusRule` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired alerting rule definitions for Prometheus.\",\n \"properties\": {\n \"groups\": {\n \"description\": \"Content of Prometheus rule file\",\n \"items\": {\n \"description\": \"RuleGroup is a list of sequentially evaluated recording and alerting rules.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"Interval determines how often rules in the group are evaluated.\",\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 \"description\": \"Labels to add or overwrite before storing the result for its rules.\\nThe labels defined at the rule level take precedence.\\n\\nIt requires Prometheus \\u003e= 3.0.0.\\nThe field is ignored for Thanos Ruler.\",\n \"type\": \"object\"\n },\n \"limit\": {\n \"description\": \"Limit the number of alerts an alerting rule and series a recording\\nrule can produce.\\nLimit is supported starting with Prometheus \\u003e= 2.31 and Thanos Ruler \\u003e= 0.24.\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"Name of the rule group.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"partial_response_strategy\": {\n \"description\": \"PartialResponseStrategy is only used by ThanosRuler and will\\nbe ignored by Prometheus instances.\\nMore info: https://github.com/thanos-io/thanos/blob/main/docs/components/rule.md#partial-response\",\n \"pattern\": \"^(?i)(abort|warn)?$\",\n \"type\": \"string\"\n },\n \"query_offset\": {\n \"description\": \"Defines the offset the rule evaluation timestamp of this particular group by the specified duration into the past.\\n\\nIt requires Prometheus \\u003e= v2.53.0.\\nIt is not supported for ThanosRuler.\",\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 \"rules\": {\n \"description\": \"List of alerting and recording rules.\",\n \"items\": {\n \"description\": \"Rule describes an alerting or recording rule\\nSee Prometheus documentation: [alerting](https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) or [recording](https://www.prometheus.io/docs/prometheus/latest/configuration/recording_rules/#recording-rules) rule\",\n \"properties\": {\n \"alert\": {\n \"description\": \"Name of the alert. Must be a valid label value.\\nOnly one of `record` and `alert` must be set.\",\n \"type\": \"string\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations to add to each alert.\\nOnly valid for alerting rules.\",\n \"type\": \"object\"\n },\n \"expr\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"PromQL expression to evaluate.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"for\": {\n \"description\": \"Alerts are considered firing once they have been returned for this long.\",\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 \"keep_firing_for\": {\n \"description\": \"KeepFiringFor defines how long an alert will continue firing after the condition that triggered it has cleared.\",\n \"minLength\": 1,\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 \"description\": \"Labels to add or overwrite.\",\n \"type\": \"object\"\n },\n \"record\": {\n \"description\": \"Name of the time series to output to. Must be a valid metric name.\\nOnly one of `record` and `alert` must be set.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"expr\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\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 },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Prometheus Rule\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Prometheus Rule", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ScrapeConfig.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ScrapeConfig.json new file mode 100644 index 00000000000..b4a4cef49b5 --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ScrapeConfig.json @@ -0,0 +1,197 @@ +{ + "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": "ScrapeConfig", + "schema": "{\n \"description\": \"ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across\\nmultiple namespaces into the Prometheus configuration.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ScrapeConfigSpec is a specification of the desired configuration for a scrape configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"azureSDConfigs\": {\n \"description\": \"AzureSDConfigs defines a list of Azure service discovery configurations.\",\n \"items\": {\n \"description\": \"AzureSDConfig allow retrieving scrape targets from Azure VMs.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#azure_sd_config\",\n \"properties\": {\n \"authenticationMethod\": {\n \"description\": \"# The authentication method, either `OAuth` or `ManagedIdentity` or `SDK`.\\nSee https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview\\nSDK authentication method uses environment variables by default.\\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\",\n \"enum\": [\n \"OAuth\",\n \"ManagedIdentity\",\n \"SDK\"\n ],\n \"type\": \"string\"\n },\n \"clientID\": {\n \"description\": \"Optional client ID. Only required with the OAuth authentication method.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Optional client secret. Only required with the OAuth authentication method.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"environment\": {\n \"description\": \"The Azure environment.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"type\": \"integer\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.\",\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 \"resourceGroup\": {\n \"description\": \"Optional resource group name. Limits discovery to this resource group.\",\n \"type\": \"string\"\n },\n \"subscriptionID\": {\n \"description\": \"The subscription ID. Always required.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tenantID\": {\n \"description\": \"Optional tenant ID. Only required with the OAuth authentication method.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"subscriptionID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"consulSDConfigs\": {\n \"description\": \"ConsulSDConfigs defines a list of Consul service discovery configurations.\",\n \"items\": {\n \"description\": \"ConsulSDConfig defines a Consul service discovery configuration\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#consul_sd_config\",\n \"properties\": {\n \"allowStale\": {\n \"description\": \"Allow stale Consul results (see https://www.consul.io/api/features/consistency.html). Will reduce load on Consul.\\nIf unset, Prometheus uses its default value.\",\n \"type\": \"boolean\"\n },\n \"authorization\": {\n \"description\": \"Optional Authorization header configuration to authenticate against the Consul Server.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional BasicAuth information to authenticate against the Consul Server.\\nMore info: https://prometheus.io/docs/operating/configuration/#endpoints\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"datacenter\": {\n \"description\": \"Consul Datacenter name, if not provided it will use the local Consul Agent Datacenter.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\\nIf unset, Prometheus uses its default value.\",\n \"type\": \"boolean\"\n },\n \"filter\": {\n \"description\": \"Filter expression used to filter the catalog results.\\nSee https://www.consul.io/api-docs/catalog#list-services\\nIt requires Prometheus \\u003e= 3.0.0.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\nIf unset, Prometheus uses its default value.\",\n \"type\": \"boolean\"\n },\n \"namespace\": {\n \"description\": \"Namespaces are only supported in Consul Enterprise.\\n\\nIt requires Prometheus \\u003e= 2.28.0.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"nodeMeta\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Node metadata key/value pairs to filter nodes for a given service.\\nStarting with Consul 1.14, it is recommended to use `filter` with the `NodeMeta` selector instead.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth2.0 configuration.\\nCannot be set at the same time as `basicAuth`, or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"partition\": {\n \"description\": \"Admin Partitions are only supported in Consul Enterprise.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"pathPrefix\": {\n \"description\": \"Prefix for URIs for when consul is behind an API gateway (reverse proxy).\\n\\nIt requires Prometheus \\u003e= 2.45.0.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time after which the provided names are refreshed.\\nOn large setup it might be a good idea to increase this value because the catalog will change all the time.\\nIf unset, Prometheus uses its default value.\",\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 \"scheme\": {\n \"description\": \"HTTP Scheme default \\\"http\\\"\",\n \"enum\": [\n \"HTTP\",\n \"HTTPS\"\n ],\n \"type\": \"string\"\n },\n \"server\": {\n \"description\": \"Consul server address. A valid string consisting of a hostname or IP followed by an optional port number.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"services\": {\n \"description\": \"A list of services for which targets are retrieved. If omitted, all services are scraped.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"tagSeparator\": {\n \"description\": \"The string by which Consul tags are joined into the tag label.\\nIf unset, Prometheus uses its default value.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tags\": {\n \"description\": \"An optional list of tags used to filter nodes for a given service. Services must contain all tags in the list.\\nStarting with Consul 1.14, it is recommended to use `filter` with the `ServiceTags` selector instead.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Consul API.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenRef\": {\n \"description\": \"Consul ACL TokenRef, if not provided it will use the ACL from the local Consul Agent.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"digitalOceanSDConfigs\": {\n \"description\": \"DigitalOceanSDConfigs defines a list of DigitalOcean service discovery configurations.\",\n \"items\": {\n \"description\": \"DigitalOceanSDConfig allow retrieving scrape targets from DigitalOcean's Droplets API.\\nThis service discovery uses the public IPv4 address by default, by that can be changed with relabeling\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#digitalocean_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the DigitalOcean API.\\nCannot be set at the same time as `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the instance list.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsSDConfigs\": {\n \"description\": \"DNSSDConfigs defines a list of DNS service discovery configurations.\",\n \"items\": {\n \"description\": \"DNSSDConfig allows specifying a set of DNS domain names which are periodically queried to discover a list of targets.\\nThe DNS servers to be contacted are read from /etc/resolv.conf.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dns_sd_config\",\n \"properties\": {\n \"names\": {\n \"description\": \"A list of DNS domain names to be queried.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"The port number used if the query type is not SRV\\nIgnored for SRV records\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the time after which the provided names are refreshed.\\nIf not set, Prometheus uses its default value.\",\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 \"type\": {\n \"description\": \"The type of DNS query to perform. One of SRV, A, AAAA, MX or NS.\\nIf not set, Prometheus uses its default value.\\n\\nWhen set to NS, it requires Prometheus \\u003e= v2.49.0.\\nWhen set to MX, it requires Prometheus \\u003e= v2.38.0\",\n \"enum\": [\n \"A\",\n \"AAAA\",\n \"MX\",\n \"NS\",\n \"SRV\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"names\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dockerSDConfigs\": {\n \"description\": \"DockerSDConfigs defines a list of Docker service discovery configurations.\",\n \"items\": {\n \"description\": \"Docker SD configurations allow retrieving scrape targets from Docker Engine hosts.\\nThis SD discovers \\\"containers\\\" and will create a target for each network IP and\\nport the container is configured to expose.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#docker_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the Docker API.\\nCannot be set at the same time as `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"filters\": {\n \"description\": \"Optional filters to limit the discovery process to a subset of the available resources.\",\n \"items\": {\n \"description\": \"Filter name and value pairs to limit the discovery process to a subset of available resources.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Filter.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"Value to filter on.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"name\",\n \"values\"\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"host\": {\n \"description\": \"Address of the docker daemon\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"hostNetworkingHost\": {\n \"description\": \"The host to use if the container is in host networking mode.\",\n \"type\": \"string\"\n },\n \"matchFirstNetwork\": {\n \"description\": \"Configure whether to match the first network if the container has multiple networks defined.\\nIf unset, Prometheus uses true by default.\\nIt requires Prometheus \\u003e= v2.54.1.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Time after which the container is refreshed.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dockerSwarmSDConfigs\": {\n \"description\": \"DockerswarmSDConfigs defines a list of Dockerswarm service discovery configurations.\",\n \"items\": {\n \"description\": \"DockerSwarmSDConfig configurations allow retrieving scrape targets from Docker Swarm engine.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dockerswarm_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the target HTTP endpoint.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional HTTP basic authentication information.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"filters\": {\n \"description\": \"Optional filters to limit the discovery process to a subset of available\\nresources.\\nThe available filters are listed in the upstream documentation:\\nServices: https://docs.docker.com/engine/api/v1.40/#operation/ServiceList\\nTasks: https://docs.docker.com/engine/api/v1.40/#operation/TaskList\\nNodes: https://docs.docker.com/engine/api/v1.40/#operation/NodeList\",\n \"items\": {\n \"description\": \"Filter name and value pairs to limit the discovery process to a subset of available resources.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Filter.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"Value to filter on.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"name\",\n \"values\"\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"host\": {\n \"description\": \"Address of the Docker daemon\",\n \"pattern\": \"^[a-zA-Z][a-zA-Z0-9+.-]*://.+$\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from, when `role` is nodes, and for discovered\\ntasks and services that don't have published ports.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time after which the service discovery data is refreshed.\",\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 \"role\": {\n \"description\": \"Role of the targets to retrieve. Must be `Services`, `Tasks`, or `Nodes`.\",\n \"enum\": [\n \"Services\",\n \"Tasks\",\n \"Nodes\"\n ],\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\",\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ec2SDConfigs\": {\n \"description\": \"EC2SDConfigs defines a list of EC2 service discovery configurations.\",\n \"items\": {\n \"description\": \"EC2SDConfig allow retrieving scrape targets from AWS EC2 instances.\\nThe private IP address is used by default, but may be changed to the public IP address with relabeling.\\nThe IAM credentials used must have the ec2:DescribeInstances permission to discover scrape targets\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ec2_sd_config\\n\\nThe EC2 service discovery requires AWS API keys or role ARN for authentication.\\nBasicAuth, Authorization and OAuth2 fields are not present on purpose.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API 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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\\nIt requires Prometheus \\u003e= v2.41.0\",\n \"type\": \"boolean\"\n },\n \"filters\": {\n \"description\": \"Filters can be used optionally to filter the instance list by other criteria.\\nAvailable filter criteria can be found here:\\nhttps://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html\\nFilter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html\\nIt requires Prometheus \\u003e= v2.3.0\",\n \"items\": {\n \"description\": \"Filter name and value pairs to limit the discovery process to a subset of available resources.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Filter.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"Value to filter on.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"name\",\n \"values\"\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\nIt requires Prometheus \\u003e= v2.41.0\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.\",\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 \"region\": {\n \"description\": \"The AWS region.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"roleARN\": {\n \"description\": \"AWS Role ARN, an alternative to using AWS API keys.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the AWS EC2 API.\\nIt requires Prometheus \\u003e= v2.41.0\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enableCompression\": {\n \"description\": \"When false, Prometheus will request uncompressed response from the scraped target.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\\n\\nIf unset, Prometheus uses true by default.\",\n \"type\": \"boolean\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"eurekaSDConfigs\": {\n \"description\": \"EurekaSDConfigs defines a list of Eureka service discovery configurations.\",\n \"items\": {\n \"description\": \"Eureka SD configurations allow retrieving scrape targets using the Eureka REST API.\\nPrometheus will periodically check the REST endpoint and create a target for every app instance.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#eureka_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization` or `basic_auth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the instance list.\",\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 \"server\": {\n \"description\": \"The URL to connect to the Eureka server.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"fileSDConfigs\": {\n \"description\": \"FileSDConfigs defines a list of file service discovery configurations.\",\n \"items\": {\n \"description\": \"FileSDConfig defines a Prometheus file service discovery configuration\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config\",\n \"properties\": {\n \"files\": {\n \"description\": \"List of files to be used for file discovery. Recommendation: use absolute paths. While relative paths work, the\\nprometheus-operator project makes no guarantees about the working directory where the configuration file is\\nstored.\\nFiles must be mounted using Prometheus.ConfigMaps or Prometheus.Secrets.\",\n \"items\": {\n \"description\": \"SDFile represents a file used for service discovery\",\n \"pattern\": \"^[^*]*(\\\\*[^/]*)?\\\\.(json|yml|yaml|JSON|YML|YAML)$\",\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will reload the content of the files.\",\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 },\n \"required\": [\n \"files\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"gceSDConfigs\": {\n \"description\": \"GCESDConfigs defines a list of GCE service discovery configurations.\",\n \"items\": {\n \"description\": \"GCESDConfig configures scrape targets from GCP GCE instances.\\nThe private IP address is used by default, but may be changed to\\nthe public IP address with relabeling.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config\\n\\nThe GCE service discovery will load the Google Cloud credentials\\nfrom the file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable.\\nSee https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform\\n\\nA pre-requisite for using GCESDConfig is that a Secret containing valid\\nGoogle Cloud credentials is mounted into the Prometheus or PrometheusAgent\\npod via the `.spec.secrets` field and that the GOOGLE_APPLICATION_CREDENTIALS\\nenvironment variable is set to /etc/prometheus/secrets/\\u003csecret-name\\u003e/\\u003ccredentials-filename.json\\u003e.\",\n \"properties\": {\n \"filter\": {\n \"description\": \"Filter can be used optionally to filter the instance list by other criteria\\nSyntax of this filter is described in the filter query parameter section:\\nhttps://cloud.google.com/compute/docs/reference/latest/instances/list\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"type\": \"integer\"\n },\n \"project\": {\n \"description\": \"The Google Cloud Project ID\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.\",\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 \"tagSeparator\": {\n \"description\": \"The tag separator is used to separate the tags on concatenation\",\n \"type\": \"string\"\n },\n \"zone\": {\n \"description\": \"The zone of the scrape targets. If you need multiple zones use multiple GCESDConfigs.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"project\",\n \"zone\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hetznerSDConfigs\": {\n \"description\": \"HetznerSDConfigs defines a list of Hetzner service discovery configurations.\",\n \"items\": {\n \"description\": \"HetznerSDConfig allow retrieving scrape targets from Hetzner Cloud API and Robot API.\\nThis service discovery uses the public IPv4 address by default, but that can be changed with relabeling\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#hetzner_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration, required when role is hcloud.\\nRole robot does not support bearer token authentication.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request, required when role is robot.\\nRole hcloud does not support basic auth.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be used at the same time as `basic_auth` or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time after which the servers are refreshed.\",\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 \"role\": {\n \"description\": \"The Hetzner role of entities that should be discovered.\",\n \"enum\": [\n \"hcloud\",\n \"Hcloud\",\n \"robot\",\n \"Robot\"\n ],\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"honorLabels\": {\n \"description\": \"HonorLabels chooses the metric's labels on collisions with target labels.\",\n \"type\": \"boolean\"\n },\n \"honorTimestamps\": {\n \"description\": \"HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.\",\n \"type\": \"boolean\"\n },\n \"httpSDConfigs\": {\n \"description\": \"HTTPSDConfigs defines a list of HTTP service discovery configurations.\",\n \"items\": {\n \"description\": \"HTTPSDConfig defines a prometheus HTTP service discovery configuration\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#http_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the target HTTP endpoint.\\nCannot be set at the same time as `oAuth2`, or `basicAuth`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to authenticate against the target HTTP endpoint.\\nMore info: https://prometheus.io/docs/operating/configuration/#endpoints\\nCannot be set at the same time as `authorization`, or `oAuth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration to authenticate against the target HTTP endpoint.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-query the\\nendpoint to update the target list.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"URL from which the targets are fetched.\",\n \"minLength\": 1,\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ionosSDConfigs\": {\n \"description\": \"IonosSDConfigs defines a list of IONOS service discovery configurations.\",\n \"items\": {\n \"description\": \"IonosSDConfig configurations allow retrieving scrape targets from IONOS resources.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ionos_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization` header configuration, required when using IONOS.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"datacenterID\": {\n \"description\": \"The unique ID of the IONOS data center.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Configure whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether the HTTP requests should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port to scrape the metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of resources.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the IONOS API.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"authorization\",\n \"datacenterID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"jobName\": {\n \"description\": \"The value of the `job` label assigned to the scraped metrics by default.\\n\\nThe `job_name` field in the rendered scrape configuration is always controlled by the\\noperator to prevent duplicate job names, which Prometheus does not allow. Instead the\\n`job` label is set by means of relabeling configs.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"kubernetesSDConfigs\": {\n \"description\": \"KubernetesSDConfigs defines a list of Kubernetes service discovery configurations.\",\n \"items\": {\n \"description\": \"KubernetesSDConfig allows retrieving scrape targets from Kubernetes' REST API.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config\",\n \"properties\": {\n \"apiServer\": {\n \"description\": \"The API server address consisting of a hostname or IP address followed\\nby an optional port number.\\nIf left empty, Prometheus is assumed to run inside\\nof the cluster. It will discover API servers automatically and use the pod's\\nCA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"attachMetadata\": {\n \"description\": \"Optional metadata to attach to discovered targets.\\nIt requires Prometheus \\u003e= v2.35.0 when using the `Pod` role and\\nPrometheus \\u003e= v2.37.0 for `Endpoints` and `Endpointslice` roles.\",\n \"properties\": {\n \"node\": {\n \"description\": \"Attaches node metadata to discovered targets.\\nWhen set to true, Prometheus must have the `get` permission on the\\n`Nodes` objects.\\nOnly valid for Pod, Endpoint and Endpointslice roles.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"namespaces\": {\n \"description\": \"Optional namespace discovery. If omitted, Prometheus discovers targets across all namespaces.\",\n \"properties\": {\n \"names\": {\n \"description\": \"List of namespaces where to watch for resources.\\nIf empty and `ownNamespace` isn't true, Prometheus watches for resources in all namespaces.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"ownNamespace\": {\n \"description\": \"Includes the namespace in which the Prometheus pod runs to the list of watched namespaces.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role of the Kubernetes entities that should be discovered.\\nRole `Endpointslice` requires Prometheus \\u003e= v2.21.0\",\n \"enum\": [\n \"Pod\",\n \"Endpoints\",\n \"Ingress\",\n \"Service\",\n \"Node\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n },\n \"selectors\": {\n \"description\": \"Selector to select objects.\\nIt requires Prometheus \\u003e= v2.17.0\",\n \"items\": {\n \"description\": \"K8SSelectorConfig is Kubernetes Selector Config\",\n \"properties\": {\n \"field\": {\n \"description\": \"An optional field selector to limit the service discovery to resources which have fields with specific values.\\ne.g: `metadata.name=foobar`\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"An optional label selector to limit the service discovery to resources with specific labels and label values.\\ne.g: `node.kubernetes.io/instance-type=master`\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role specifies the type of Kubernetes resource to limit the service discovery to.\\nAccepted values are: Node, Pod, Endpoints, EndpointSlice, Service, Ingress.\",\n \"enum\": [\n \"Pod\",\n \"Endpoints\",\n \"Ingress\",\n \"Service\",\n \"Node\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"role\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Kubernetes API.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"kumaSDConfigs\": {\n \"description\": \"KumaSDConfigs defines a list of Kuma service discovery configurations.\",\n \"items\": {\n \"description\": \"KumaSDConfig allow retrieving scrape targets from Kuma's control plane.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kuma_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientID\": {\n \"description\": \"Client id is used by Kuma Control Plane to compute Monitoring Assignment for specific Prometheus backend.\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"fetchTimeout\": {\n \"description\": \"The time after which the monitoring assignments are refreshed.\",\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time to wait between polling update requests.\",\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 \"server\": {\n \"description\": \"Address of the Kuma Control Plane's MADS xDS server.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"lightSailSDConfigs\": {\n \"description\": \"LightsailSDConfigs defines a list of Lightsail service discovery configurations.\",\n \"items\": {\n \"description\": \"LightSailSDConfig configurations allow retrieving scrape targets from AWS Lightsail instances.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#lightsail_sd_config\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API 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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authorization\": {\n \"description\": \"Optional `authorization` HTTP header configuration.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional HTTP basic authentication information.\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Configure whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"endpoint\": {\n \"description\": \"Custom endpoint to be used.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether the HTTP requests should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth2.0 configuration.\\nCannot be set at the same time as `basicAuth`, or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Port to scrape the metrics from.\\nIf using the public IP address, this must instead be specified in the relabeling rule.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of instances.\",\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 \"region\": {\n \"description\": \"The AWS region.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"roleARN\": {\n \"description\": \"AWS Role ARN, an alternative to using AWS API keys.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Puppet DB.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"linodeSDConfigs\": {\n \"description\": \"LinodeSDConfigs defines a list of Linode service discovery configurations.\",\n \"items\": {\n \"description\": \"LinodeSDConfig configurations allow retrieving scrape targets from Linode's Linode APIv4.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#linode_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be used at the same time as `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Default port to scrape metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Time after which the linode instances are refreshed.\",\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 \"region\": {\n \"description\": \"Optional region to filter on.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tagSeparator\": {\n \"description\": \"The string by which Linode Instance tags are joined into the tag label.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelConfigs to apply to samples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"metricsPath\": {\n \"description\": \"MetricsPath HTTP path to scrape for metrics. If empty, Prometheus uses the default value (e.g. /metrics).\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"nomadSDConfigs\": {\n \"description\": \"NomadSDConfigs defines a list of Nomad service discovery configurations.\",\n \"items\": {\n \"description\": \"NomadSDConfig configurations allow retrieving scrape targets from Nomad's Service API.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#nomad_sd_config\",\n \"properties\": {\n \"allowStale\": {\n \"description\": \"The information to access the Nomad API. It is to be defined\\nas the Nomad documentation requires.\",\n \"type\": \"boolean\"\n },\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization` or `basic_auth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function.\\nSupported units: y, w, d, h, m, s, ms\\nExamples: `30s`, `1m`, `1h20m15s`, `15d`\",\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 \"region\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tagSeparator\": {\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration to use on every scrape request.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"openstackSDConfigs\": {\n \"description\": \"OpenStackSDConfigs defines a list of OpenStack service discovery configurations.\",\n \"items\": {\n \"description\": \"OpenStackSDConfig allow retrieving scrape targets from OpenStack Nova instances.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#openstack_sd_config\",\n \"properties\": {\n \"allTenants\": {\n \"description\": \"Whether the service discovery should list all instances for all projects.\\nIt is only relevant for the 'instance' role and usually requires admin permissions.\",\n \"type\": \"boolean\"\n },\n \"applicationCredentialId\": {\n \"description\": \"ApplicationCredentialID\",\n \"type\": \"string\"\n },\n \"applicationCredentialName\": {\n \"description\": \"The ApplicationCredentialID or ApplicationCredentialName fields are\\nrequired if using an application credential to authenticate. Some providers\\nallow you to create an application credential to authenticate rather than a\\npassword.\",\n \"type\": \"string\"\n },\n \"applicationCredentialSecret\": {\n \"description\": \"The applicationCredentialSecret field is required if using an application\\ncredential to authenticate.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"availability\": {\n \"description\": \"Availability of the endpoint to connect to.\",\n \"enum\": [\n \"Public\",\n \"public\",\n \"Admin\",\n \"admin\",\n \"Internal\",\n \"internal\"\n ],\n \"type\": \"string\"\n },\n \"domainID\": {\n \"description\": \"DomainID\",\n \"type\": \"string\"\n },\n \"domainName\": {\n \"description\": \"At most one of domainId and domainName must be provided if using username\\nwith Identity V3. Otherwise, either are optional.\",\n \"type\": \"string\"\n },\n \"identityEndpoint\": {\n \"description\": \"IdentityEndpoint specifies the HTTP endpoint that is required to work with\\nthe Identity API of the appropriate version.\",\n \"type\": \"string\"\n },\n \"password\": {\n \"description\": \"Password for the Identity V2 and V3 APIs. Consult with your provider's\\ncontrol panel to discover your account's preferred method of authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"type\": \"integer\"\n },\n \"projectID\": {\n \"description\": \" ProjectID\",\n \"type\": \"string\"\n },\n \"projectName\": {\n \"description\": \"The ProjectId and ProjectName fields are optional for the Identity V2 API.\\nSome providers allow you to specify a ProjectName instead of the ProjectId.\\nSome require both. Your provider's authentication policies will determine\\nhow these fields influence authentication.\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the instance list.\",\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 \"region\": {\n \"description\": \"The OpenStack Region.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"The OpenStack role of entities that should be discovered.\",\n \"enum\": [\n \"Instance\",\n \"instance\",\n \"Hypervisor\",\n \"hypervisor\"\n ],\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"userid\": {\n \"description\": \"UserID\",\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username is required if using Identity V2 API. Consult with your provider's\\ncontrol panel to discover your account's username.\\nIn Identity V3, either userid or a combination of username\\nand domainId or domainName are needed\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"region\",\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ovhcloudSDConfigs\": {\n \"description\": \"OVHCloudSDConfigs defines a list of OVHcloud service discovery configurations.\",\n \"items\": {\n \"description\": \"OVHCloudSDConfig configurations allow retrieving scrape targets from OVHcloud's dedicated servers and VPS using their API.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ovhcloud_sd_config\",\n \"properties\": {\n \"applicationKey\": {\n \"description\": \"Access key to use. https://api.ovh.com.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"applicationSecret\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"consumerKey\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpoint\": {\n \"description\": \"Custom endpoint to be used.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the resources list.\",\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 \"service\": {\n \"allOf\": [\n {\n \"enum\": [\n \"VPS\",\n \"DedicatedServer\"\n ]\n },\n {\n \"enum\": [\n \"VPS\",\n \"DedicatedServer\"\n ]\n }\n ],\n \"description\": \"Service of the targets to retrieve. Must be `VPS` or `DedicatedServer`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"applicationKey\",\n \"applicationSecret\",\n \"consumerKey\",\n \"service\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"params\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"Optional HTTP URL parameters\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"puppetDBSDConfigs\": {\n \"description\": \"PuppetDBSDConfigs defines a list of PuppetDB service discovery configurations.\",\n \"items\": {\n \"description\": \"PuppetDBSDConfig configurations allow retrieving scrape targets from PuppetDB resources.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#puppetdb_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Optional `authorization` HTTP header configuration.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional HTTP basic authentication information.\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Configure whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether the HTTP requests should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"includeParameters\": {\n \"description\": \"Whether to include the parameters as meta labels.\\nNote: Enabling this exposes parameters in the Prometheus UI and API. Make sure\\nthat you don't have secrets exposed as parameters if you enable this.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth2.0 configuration.\\nCannot be set at the same time as `basicAuth`, or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Port to scrape the metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"query\": {\n \"description\": \"Puppet Query Language (PQL) query. Only resources are supported.\\nhttps://puppet.com/docs/puppetdb/latest/api/query/v4/pql.html\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of resources.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Puppet DB.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the PuppetDB root query endpoint.\",\n \"minLength\": 1,\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"query\",\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"relabelings\": {\n \"description\": \"RelabelConfigs defines how to rewrite the target's labels before scraping.\\nPrometheus Operator automatically adds relabelings for a few standard Kubernetes fields.\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scalewaySDConfigs\": {\n \"description\": \"ScalewaySDConfigs defines a list of Scaleway instances and baremetal service discovery configurations.\",\n \"items\": {\n \"description\": \"ScalewaySDConfig configurations allow retrieving scrape targets from Scaleway instances and baremetal services.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scaleway_sd_config\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"Access key to use. https://console.scaleway.com/project/credentials\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"apiURL\": {\n \"description\": \"API URL to use when doing the server listing requests.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"nameFilter\": {\n \"description\": \"NameFilter specify a name filter (works as a LIKE) to apply on the server listing request.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"projectID\": {\n \"description\": \"Project ID of the targets.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of instances.\",\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 \"role\": {\n \"description\": \"Service of the targets to retrieve. Must be `Instance` or `Baremetal`.\",\n \"enum\": [\n \"Instance\",\n \"Baremetal\"\n ],\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"Secret key to use when listing targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tagsFilter\": {\n \"description\": \"TagsFilter specify a tag filter (a server needs to have all defined tags to be listed) to apply on the server listing request.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"zone\": {\n \"description\": \"Zone is the availability zone of your targets (e.g. fr-par-1).\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"accessKey\",\n \"projectID\",\n \"role\",\n \"secretKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"Configures the protocol scheme used for requests.\\nIf empty, Prometheus uses HTTP by default.\",\n \"enum\": [\n \"HTTP\",\n \"HTTPS\"\n ],\n \"type\": \"string\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeInterval\": {\n \"description\": \"ScrapeInterval is the interval between consecutive scrapes.\",\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 \"scrapeProtocols\": {\n \"description\": \"The protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"ScrapeTimeout is the number of seconds to wait until a scrape request times out.\",\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 \"staticConfigs\": {\n \"description\": \"StaticConfigs defines a list of static targets with a common label set.\",\n \"items\": {\n \"description\": \"StaticConfig defines a Prometheus static configuration.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels assigned to all metrics scraped from the targets.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targets\": {\n \"description\": \"List of targets for this static configuration.\",\n \"items\": {\n \"description\": \"Target represents a target for Prometheus to scrape\\nkubebuilder:validation:MinLength:=1\",\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"targets\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"trackTimestampsStaleness\": {\n \"description\": \"TrackTimestampsStaleness whether Prometheus tracks staleness of\\nthe metrics that have an explicit timestamp present in scraped data.\\nHas no effect if `honorTimestamps` is false.\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Scrape Config\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Scrape Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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\" width='434.72' height='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" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ServiceMonitor.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ServiceMonitor.json new file mode 100644 index 00000000000..b5afa90f495 --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ServiceMonitor.json @@ -0,0 +1,196 @@ +{ + "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": "ServiceMonitor", + "schema": "{\n \"description\": \"The `ServiceMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of services.\\nAmong other things, it allows to specify:\\n* The services to scrape via label selectors.\\n* The container ports to scrape.\\n* Authentication credentials to use.\\n* Target and metric relabeling.\\n\\n`Prometheus` and `PrometheusAgent` objects select `ServiceMonitor` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired Service selection for target discovery by\\nPrometheus.\",\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"`attachMetadata` defines additional metadata which is added to the\\ndiscovered targets.\\n\\nIt requires Prometheus \\u003e= v2.37.0.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"bodySizeLimit\": {\n \"description\": \"When defined, bodySizeLimit specifies a job level limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"endpoints\": {\n \"description\": \"List of endpoints part of this ServiceMonitor.\\nDefines how to scrape metrics from Kubernetes [Endpoints](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) objects.\\nIn most cases, an Endpoints object is backed by a Kubernetes [Service](https://kubernetes.io/docs/concepts/services-networking/service/) object with the same name and labels.\",\n \"items\": {\n \"description\": \"Endpoint defines an endpoint serving Prometheus metrics to be scraped by\\nPrometheus.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"`authorization` configures the Authorization header credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"`basicAuth` configures the Basic Authentication credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for scraping the target.\\n\\nDeprecated: use `authorization` instead.\",\n \"type\": \"string\"\n },\n \"bearerTokenSecret\": {\n \"description\": \"`bearerTokenSecret` specifies a key of a Secret containing the bearer\\ntoken for scraping targets. The secret needs to be in the same namespace\\nas the ServiceMonitor object and readable by the Prometheus Operator.\\n\\nDeprecated: use `authorization` instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHttp2\": {\n \"description\": \"`enableHttp2` can be used to disable HTTP2 when scraping the target.\",\n \"type\": \"boolean\"\n },\n \"filterRunning\": {\n \"description\": \"When true, the pods which are not running (e.g. either in Failed or\\nSucceeded state) are dropped during the target discovery.\\n\\nIf unset, the filtering is enabled.\\n\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"`followRedirects` defines whether the scrape requests should follow HTTP\\n3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"honorLabels\": {\n \"description\": \"When true, `honorLabels` preserves the metric's labels when they collide\\nwith the target's labels.\",\n \"type\": \"boolean\"\n },\n \"honorTimestamps\": {\n \"description\": \"`honorTimestamps` controls whether Prometheus preserves the timestamps\\nwhen exposed by the target.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"Interval at which Prometheus scrapes the metrics from the target.\\n\\nIf empty, Prometheus uses the global scrape interval.\",\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 \"metricRelabelings\": {\n \"description\": \"`metricRelabelings` configures the relabeling rules to apply to the\\nsamples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"oauth2\": {\n \"description\": \"`oauth2` configures the OAuth2 settings to use when scraping the target.\\n\\nIt requires Prometheus \\u003e= 2.27.0.\\n\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"params\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"params define optional HTTP URL parameters.\",\n \"type\": \"object\"\n },\n \"path\": {\n \"description\": \"HTTP path from which to scrape for metrics.\\n\\nIf empty, Prometheus uses the default value (e.g. `/metrics`).\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Name of the Service port which this endpoint refers to.\\n\\nIt takes precedence over `targetPort`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` configures the HTTP Proxy URL (e.g.\\n\\\"http://proxyserver:2195\\\") to go through when scraping the target.\",\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"`relabelings` configures the relabeling rules to apply the target's\\nmetadata labels.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields.\\n\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"HTTP scheme to use for scraping.\\n\\n`http` and `https` are the expected values unless you rewrite the\\n`__scheme__` label via relabeling.\\n\\nIf empty, Prometheus uses the default value `http`.\",\n \"enum\": [\n \"http\",\n \"https\"\n ],\n \"type\": \"string\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Timeout after which Prometheus considers the scrape to be failed.\\n\\nIf empty, Prometheus uses the global scrape timeout unless it is less\\nthan the target's scrape interval value in which the latter is used.\",\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 \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the target port of the `Pod` object behind the\\nService. The port must be specified with the container's port property.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when scraping the target.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"trackTimestampsStaleness\": {\n \"description\": \"`trackTimestampsStaleness` defines whether Prometheus tracks staleness of\\nthe metrics that have an explicit timestamp present in scraped data.\\nHas no effect if `honorTimestamps` is false.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"jobLabel\": {\n \"description\": \"`jobLabel` selects the label from the associated Kubernetes `Service`\\nobject which will be used as the `job` label for all metrics.\\n\\nFor example if `jobLabel` is set to `foo` and the Kubernetes `Service`\\nobject is labeled with `foo: bar`, then Prometheus adds the `job=\\\"bar\\\"`\\nlabel to all ingested metrics.\\n\\nIf the value of this field is empty or if the label doesn't exist for\\nthe given Service, the `job` label of the metrics defaults to the name\\nof the associated Kubernetes `Service`.\",\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"namespaceSelector\": {\n \"description\": \"`namespaceSelector` defines in which namespace(s) Prometheus should discover the services.\\nBy default, the services are discovered in the same namespace as the `ServiceMonitor` object but it is possible to select pods across different/all namespaces.\",\n \"properties\": {\n \"any\": {\n \"description\": \"Boolean describing whether all namespaces are selected in contrast to a\\nlist restricting them.\",\n \"type\": \"boolean\"\n },\n \"matchNames\": {\n \"description\": \"List of namespace names to select from.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podTargetLabels\": {\n \"description\": \"`podTargetLabels` defines the labels which are transferred from the\\nassociated Kubernetes `Pod` object onto the ingested metrics.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sampleLimit\": {\n \"description\": \"`sampleLimit` defines a per-scrape limit on the number of scraped samples\\nthat will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeProtocols\": {\n \"description\": \"`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"selector\": {\n \"description\": \"Label selector to select the Kubernetes `Endpoints` objects to scrape metrics from.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"selectorMechanism\": {\n \"description\": \"Mechanism used to select the endpoints to scrape.\\nBy default, the selection process relies on relabel configurations to filter the discovered targets.\\nAlternatively, you can opt in for role selectors, which may offer better efficiency in large clusters.\\nWhich strategy is best for your use case needs to be carefully evaluated.\\n\\nIt requires Prometheus \\u003e= v2.17.0.\",\n \"enum\": [\n \"RelabelConfig\",\n \"RoleSelector\"\n ],\n \"type\": \"string\"\n },\n \"targetLabels\": {\n \"description\": \"`targetLabels` defines the labels which are transferred from the\\nassociated Kubernetes `Service` object onto the ingested metrics.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLimit\": {\n \"description\": \"`targetLimit` defines a limit on the number of scraped targets that will\\nbe accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"selector\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Service Monitor\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Service Monitor", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ThanosRuler.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ThanosRuler.json new file mode 100644 index 00000000000..55c278f7d3f --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/components/ThanosRuler.json @@ -0,0 +1,197 @@ +{ + "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": "ThanosRuler", + "schema": "{\n \"description\": \"The `ThanosRuler` custom resource definition (CRD) defines a desired [Thanos Ruler](https://github.com/thanos-io/thanos/blob/main/docs/components/rule.md) setup to run in a Kubernetes cluster.\\n\\nA `ThanosRuler` instance requires at least one compatible Prometheus API endpoint (either Thanos Querier or Prometheus services).\\n\\nThe resource defines via label and namespace selectors which `PrometheusRule` objects should be associated to the deployed Thanos Ruler instances.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the ThanosRuler cluster. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the ThanosRuler container.\\nIt is intended for e.g. activating hidden flags which are not supported by\\nthe dedicated configuration options yet. The arguments are passed as-is to the\\nThanosRuler container which may cause issues if they are invalid or not supported\\nby the given ThanosRuler version.\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"alertDropLabels\": {\n \"description\": \"Configures the label names which should be dropped in Thanos Ruler\\nalerts.\\n\\nThe replica label `thanos_ruler_replica` will always be dropped from the alerts.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"alertQueryUrl\": {\n \"description\": \"The external Query URL the Thanos Ruler will set in the 'Source' field\\nof all alerts.\\nMaps to the '--alert.query-url' CLI arg.\",\n \"type\": \"string\"\n },\n \"alertRelabelConfigFile\": {\n \"description\": \"Configures the path to the alert relabeling configuration file.\\n\\nAlert relabel configuration must have the form as specified in the\\nofficial Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs\\n\\nThe operator performs no validation of the configuration file.\\n\\nThis field takes precedence over `alertRelabelConfig`.\",\n \"type\": \"string\"\n },\n \"alertRelabelConfigs\": {\n \"description\": \"Configures alert relabeling in Thanos Ruler.\\n\\nAlert relabel configuration must have the form as specified in the\\nofficial Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs\\n\\nThe operator performs no validation of the configuration.\\n\\n`alertRelabelConfigFile` takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"alertmanagersConfig\": {\n \"description\": \"Configures the list of Alertmanager endpoints to send alerts to.\\n\\nThe configuration format is defined at https://thanos.io/tip/components/rule.md/#alertmanager.\\n\\nIt requires Thanos \\u003e= v0.10.0.\\n\\nThe operator performs no validation of the configuration.\\n\\nThis field takes precedence over `alertmanagersUrl`.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"alertmanagersUrl\": {\n \"description\": \"Configures the list of Alertmanager endpoints to send alerts to.\\n\\nFor Thanos \\u003e= v0.10.0, it is recommended to use `alertmanagersConfig` instead.\\n\\n`alertmanagersConfig` takes precedence over this field.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers or modifying operator generated\\ncontainers. This can be used to allow adding an authentication proxy to a ThanosRuler pod or\\nto change the behavior of an operator generated container. Containers described here modify\\nan operator generated container if they share the same name and modifications are done via a\\nstrategic merge patch. The current container names are: `thanos-ruler` and `config-reloader`.\\nOverriding containers is entirely outside the scope of what the maintainers will support and by doing\\nso, you accept that this behaviour may break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enforcedNamespaceLabel\": {\n \"description\": \"EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert\\nand metric that is user created. The label value will always be the namespace of the object that is\\nbeing created.\",\n \"type\": \"string\"\n },\n \"evaluationInterval\": {\n \"default\": \"15s\",\n \"description\": \"Interval between consecutive evaluations.\",\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 \"excludedFromEnforcement\": {\n \"description\": \"List of references to PrometheusRule objects\\nto be excluded from enforcing a namespace label of origin.\\nApplies only if enforcedNamespaceLabel set to true.\",\n \"items\": {\n \"description\": \"ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object.\",\n \"properties\": {\n \"group\": {\n \"default\": \"monitoring.coreos.com\",\n \"description\": \"Group of the referent. When not specified, it defaults to `monitoring.coreos.com`\",\n \"enum\": [\n \"monitoring.coreos.com\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. When not set, all resources in the namespace are matched.\",\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 \"minLength\": 1,\n \"type\": \"string\"\n },\n \"resource\": {\n \"description\": \"Resource of the referent.\",\n \"enum\": [\n \"prometheusrules\",\n \"servicemonitors\",\n \"podmonitors\",\n \"probes\",\n \"scrapeconfigs\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"externalPrefix\": {\n \"description\": \"The external URL the Thanos Ruler instances will be available under. This is\\nnecessary to generate correct URLs. This is necessary if Thanos Ruler is not\\nserved from root of a DNS name.\",\n \"type\": \"string\"\n },\n \"grpcServerTlsConfig\": {\n \"description\": \"GRPCServerTLSConfig configures the gRPC server from which Thanos Querier reads\\nrecorded rule data.\\nNote: Currently only the CAFile, CertFile, and KeyFile fields are supported.\\nMaps to the '--grpc-server-tls-*' CLI args.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"hostAliases\": {\n \"description\": \"Pods' hostAliases configuration\",\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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"image\": {\n \"description\": \"Thanos container image URL.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'thanos', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to secrets in the same namespace\\nto use for pulling thanos images from registries\\nsee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows adding initContainers to the pod definition. Those can be used to e.g.\\nfetch secrets for injection into the ThanosRuler configuration from external sources. Any\\nerrors during the execution of an initContainer will lead to a restart of the Pod.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nUsing initContainers for any use case other then secret fetching is entirely outside the scope\\nof what the maintainers will support and by doing so, you accept that this behaviour may break\\nat any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Configures the external label pairs of the ThanosRuler resource.\\n\\nA default replica label `thanos_ruler_replica` will be always added as a\\nlabel with the value of the pod's name.\",\n \"type\": \"object\"\n },\n \"listenLocal\": {\n \"description\": \"ListenLocal makes the Thanos ruler listen on loopback, so that it\\ndoes not bind against the Pod IP.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for ThanosRuler to be configured with.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for ThanosRuler to be configured with.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\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)\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Define which Nodes the Pods are scheduled on.\",\n \"type\": \"object\"\n },\n \"objectStorageConfig\": {\n \"description\": \"Configures object storage.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage\\n\\nThe operator performs no validation of the configuration.\\n\\n`objectStorageConfigFile` takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"objectStorageConfigFile\": {\n \"description\": \"Configures the path of the object storage configuration file.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage\\n\\nThe operator performs no validation of the configuration file.\\n\\nThis field takes precedence over `objectStorageConfig`.\",\n \"type\": \"string\"\n },\n \"paused\": {\n \"description\": \"When a ThanosRuler deployment is paused, no actions except for deletion\\nwill be performed on the underlying objects.\",\n \"type\": \"boolean\"\n },\n \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the ThanosRuler pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"thanos-ruler\\\".\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the ThanosRuler instance.\\n* \\\"thanos-ruler\\\" label, set to the name of the ThanosRuler instance.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"thanos-ruler\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefaults to `web`.\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods\",\n \"type\": \"string\"\n },\n \"prometheusRulesExcludedFromEnforce\": {\n \"description\": \"PrometheusRulesExcludedFromEnforce - list of Prometheus rules to be excluded from enforcing\\nof adding namespace labels. Works only if enforcedNamespaceLabel set to true.\\nMake sure both ruleNamespace and ruleName are set for each pair\\nDeprecated: use excludedFromEnforcement instead.\",\n \"items\": {\n \"description\": \"PrometheusRuleExcludeConfig enables users to configure excluded\\nPrometheusRule names and their namespaces to be ignored while enforcing\\nnamespace label for alerts and metrics.\",\n \"properties\": {\n \"ruleName\": {\n \"description\": \"Name of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n },\n \"ruleNamespace\": {\n \"description\": \"Namespace of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ruleName\",\n \"ruleNamespace\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"queryConfig\": {\n \"description\": \"Configures the list of Thanos Query endpoints from which to query metrics.\\n\\nThe configuration format is defined at https://thanos.io/tip/components/rule.md/#query-api\\n\\nIt requires Thanos \\u003e= v0.11.0.\\n\\nThe operator performs no validation of the configuration.\\n\\nThis field takes precedence over `queryEndpoints`.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"queryEndpoints\": {\n \"description\": \"Configures the list of Thanos Query endpoints from which to query metrics.\\n\\nFor Thanos \\u003e= v0.11.0, it is recommended to use `queryConfig` instead.\\n\\n`queryConfig` takes precedence over this field.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"replicas\": {\n \"description\": \"Number of thanos ruler instances to deploy.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Resources defines the resource requirements for single Pods.\\nIf not provided, no requests/limits will be set\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"retention\": {\n \"default\": \"24h\",\n \"description\": \"Time duration ThanosRuler shall retain data for. Default is '24h',\\nand must match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds seconds minutes hours days weeks years).\",\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 \"routePrefix\": {\n \"description\": \"The route prefix ThanosRuler registers HTTP handlers for. This allows thanos UI to be served on a sub-path.\",\n \"type\": \"string\"\n },\n \"ruleNamespaceSelector\": {\n \"description\": \"Namespaces to be selected for Rules discovery. If unspecified, only\\nthe same namespace as the ThanosRuler object is in is used.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"ruleSelector\": {\n \"description\": \"PrometheusRule objects to be selected for rule evaluation. An empty\\nlabel selector matches all objects. A null label selector matches no\\nobjects.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nThanos Ruler Pods.\",\n \"type\": \"string\"\n },\n \"storage\": {\n \"description\": \"Storage spec to specify how storage shall be used.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\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 \"topologySpreadConstraints\": {\n \"description\": \"If specified, the pod's topology spread constraints.\",\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\\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\\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\\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\\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 \"tracingConfig\": {\n \"description\": \"Configures tracing.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nThe operator performs no validation of the configuration.\\n\\n`tracingConfigFile` takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tracingConfigFile\": {\n \"description\": \"Configures the path of the tracing configuration file.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nThe operator performs no validation of the configuration file.\\n\\nThis field takes precedence over `tracingConfig`.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of Thanos to be deployed.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition.\\nVolumeMounts specified will be appended to other VolumeMounts in the ruler container,\\nthat are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will\\nbe appended to other volumes that are generated as a result of StorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"web\": {\n \"description\": \"Defines the configuration of the ThanosRuler web server.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Thanos Ruler\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Thanos Ruler", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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\" width='434.72' height='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" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/model.json b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/model.json new file mode 100644 index 00000000000..ef5cb0e6aa7 --- /dev/null +++ b/server/meshmodel/kube-prometheus-stack/67.7.0/v1.0.0/model.json @@ -0,0 +1,44 @@ +{ + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus Stack", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus-stack", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Alertmanager.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Alertmanager.json new file mode 100644 index 00000000000..c53c91e01c2 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Alertmanager.json @@ -0,0 +1,196 @@ +{ + "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": "Alertmanager", + "schema": "{\n \"description\": \"The `Alertmanager` custom resource definition (CRD) defines a desired [Alertmanager](https://prometheus.io/docs/alerting) setup to run in a Kubernetes cluster. It allows to specify many options such as the number of replicas, persistent storage and many more.\\n\\nFor each `Alertmanager` resource, the Operator deploys a `StatefulSet` in the same namespace. When there are two or more configured replicas, the Operator runs the Alertmanager instances in high-availability mode.\\n\\nThe resource defines via label and namespace selectors which `AlertmanagerConfig` objects should be associated to the deployed Alertmanager instances.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the Alertmanager cluster. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalPeers\": {\n \"description\": \"AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"alertmanagerConfigMatcherStrategy\": {\n \"description\": \"AlertmanagerConfigMatcherStrategy defines how AlertmanagerConfig objects\\nprocess incoming alerts.\",\n \"properties\": {\n \"type\": {\n \"default\": \"OnNamespace\",\n \"description\": \"AlertmanagerConfigMatcherStrategyType defines the strategy used by\\nAlertmanagerConfig objects to match alerts in the routes and inhibition\\nrules.\\n\\nThe default value is `OnNamespace`.\",\n \"enum\": [\n \"OnNamespace\",\n \"None\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"alertmanagerConfigNamespaceSelector\": {\n \"description\": \"Namespaces to be selected for AlertmanagerConfig discovery. If nil, only\\ncheck own 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 \"alertmanagerConfigSelector\": {\n \"description\": \"AlertmanagerConfigs to be selected for to merge and configure Alertmanager with.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"alertmanagerConfiguration\": {\n \"description\": \"alertmanagerConfiguration specifies the configuration of Alertmanager.\\n\\nIf defined, it takes precedence over the `configSecret` field.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"properties\": {\n \"global\": {\n \"description\": \"Defines the global parameters of the Alertmanager configuration.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the Alertmanager\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"opsGenieApiKey\": {\n \"description\": \"The default OpsGenie API 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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"opsGenieApiUrl\": {\n \"description\": \"The default OpsGenie API URL.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"pagerdutyUrl\": {\n \"description\": \"The default Pagerduty URL.\",\n \"type\": \"string\"\n },\n \"resolveTimeout\": {\n \"description\": \"ResolveTimeout is the default value used by alertmanager if the alert does\\nnot include EndsAt, after this time passes it can declare the alert as resolved if it has not been updated.\\nThis has no impact on alerts from Prometheus, as they always include EndsAt.\",\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 \"slackApiUrl\": {\n \"description\": \"The default Slack API URL.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"smtp\": {\n \"description\": \"Configures global SMTP parameters.\",\n \"properties\": {\n \"authIdentity\": {\n \"description\": \"SMTP Auth using PLAIN\",\n \"type\": \"string\"\n },\n \"authPassword\": {\n \"description\": \"SMTP Auth using LOGIN and PLAIN.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authSecret\": {\n \"description\": \"SMTP Auth using CRAM-MD5.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authUsername\": {\n \"description\": \"SMTP Auth using CRAM-MD5, LOGIN and PLAIN. If empty, Alertmanager doesn't authenticate to the SMTP server.\",\n \"type\": \"string\"\n },\n \"from\": {\n \"description\": \"The default SMTP From header field.\",\n \"type\": \"string\"\n },\n \"hello\": {\n \"description\": \"The default hostname to identify to the SMTP server.\",\n \"type\": \"string\"\n },\n \"requireTLS\": {\n \"description\": \"The default SMTP TLS requirement.\\nNote that Go does not support unencrypted connections to remote SMTP endpoints.\",\n \"type\": \"boolean\"\n },\n \"smartHost\": {\n \"description\": \"The default SMTP smarthost used for sending emails.\",\n \"properties\": {\n \"host\": {\n \"description\": \"Defines the host's address, it can be a DNS name or a literal IP address.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Defines the host's port, it can be a literal port number or a port name.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"host\",\n \"port\"\n ],\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the AlertmanagerConfig resource which is used to generate the Alertmanager configuration.\\nIt must be defined in the same namespace as the Alertmanager object.\\nThe operator will not enforce a `namespace` label for routes and inhibition rules.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"templates\": {\n \"description\": \"Custom notification templates.\",\n \"items\": {\n \"description\": \"SecretOrConfigMap allows to specify data as a Secret or ConfigMap. Fields are mutually exclusive.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod.\\nIf the service account has `automountServiceAccountToken: true`, set the field to `false` to opt out of automounting API credentials.\",\n \"type\": \"boolean\"\n },\n \"baseImage\": {\n \"description\": \"Base image that is used to deploy pods, without tag.\\nDeprecated: use 'image' instead.\",\n \"type\": \"string\"\n },\n \"clusterAdvertiseAddress\": {\n \"description\": \"ClusterAdvertiseAddress is the explicit address to advertise in cluster.\\nNeeds to be provided for non RFC1918 [1] (public) addresses.\\n[1] RFC1918: https://tools.ietf.org/html/rfc1918\",\n \"type\": \"string\"\n },\n \"clusterGossipInterval\": {\n \"description\": \"Interval between gossip attempts.\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"clusterLabel\": {\n \"description\": \"Defines the identifier that uniquely identifies the Alertmanager cluster.\\nYou should only set it when the Alertmanager cluster includes Alertmanager instances which are external to this Alertmanager resource. In practice, the addresses of the external instances are provided via the `.spec.additionalPeers` field.\",\n \"type\": \"string\"\n },\n \"clusterPeerTimeout\": {\n \"description\": \"Timeout for cluster peering.\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"clusterPushpullInterval\": {\n \"description\": \"Interval between pushpull attempts.\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"configMaps\": {\n \"description\": \"ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager\\nobject, which shall be mounted into the Alertmanager Pods.\\nEach ConfigMap is added to the StatefulSet definition as a volume named `configmap-\\u003cconfigmap-name\\u003e`.\\nThe ConfigMaps are mounted into `/etc/alertmanager/configmaps/\\u003cconfigmap-name\\u003e` in the 'alertmanager' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"configSecret\": {\n \"description\": \"ConfigSecret is the name of a Kubernetes Secret in the same namespace as the\\nAlertmanager object, which contains the configuration for this Alertmanager\\ninstance. If empty, it defaults to `alertmanager-\\u003calertmanager-name\\u003e`.\\n\\nThe Alertmanager configuration should be available under the\\n`alertmanager.yaml` key. Additional keys from the original secret are\\ncopied to the generated secret and mounted into the\\n`/etc/alertmanager/config` directory in the `alertmanager` container.\\n\\nIf either the secret or the `alertmanager.yaml` key is missing, the\\noperator provisions a minimal Alertmanager configuration with one empty\\nreceiver (effectively dropping alert notifications).\",\n \"type\": \"string\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers. This is meant to\\nallow adding an authentication proxy to an Alertmanager pod.\\nContainers described here modify an operator generated container if they\\nshare the same name and modifications are done via a strategic merge\\npatch. The current container names are: `alertmanager` and\\n`config-reloader`. Overriding containers is entirely outside the scope\\nof what the maintainers will support and by doing so, you accept that\\nthis behaviour may break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enableFeatures\": {\n \"description\": \"Enable access to Alertmanager feature flags. By default, no features are enabled.\\nEnabling features which are disabled by default is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept\\nthat this behaviour may break at any time without notice.\\n\\nIt requires Alertmanager \\u003e= 0.27.0.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"externalUrl\": {\n \"description\": \"The external URL the Alertmanager instances will be available under. This is\\nnecessary to generate correct URLs. This is necessary if Alertmanager is not\\nserved from root of a DNS name.\",\n \"type\": \"string\"\n },\n \"forceEnableClusterMode\": {\n \"description\": \"ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.\\nUse case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.\",\n \"type\": \"boolean\"\n },\n \"hostAliases\": {\n \"description\": \"Pods' hostAliases configuration\",\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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"image\": {\n \"description\": \"Image if specified has precedence over baseImage, tag and sha\\ncombinations. Specifying the version is still necessary to ensure the\\nPrometheus Operator knows what version of Alertmanager is being\\nconfigured.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'alertmanager', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to secrets in the same namespace\\nto use for pulling prometheus and alertmanager images from registries\\nsee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows adding initContainers to the pod definition. Those can be used to e.g.\\nfetch secrets for injection into the Alertmanager configuration from external sources. Any\\nerrors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nInitContainers described here modify an operator\\ngenerated init containers if they share the same name and modifications are\\ndone via a strategic merge patch. The current init container name is:\\n`init-config-reloader`. Overriding init containers is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept that\\nthis behaviour may break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"listenLocal\": {\n \"description\": \"ListenLocal makes the Alertmanager server listen on loopback, so that it\\ndoes not bind against the Pod IP. Note this is only for the Alertmanager\\nUI, not the gossip communication.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for Alertmanager to be configured with.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for Alertmanager to be configured with.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\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)\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Define which Nodes the Pods are scheduled on.\",\n \"type\": \"object\"\n },\n \"paused\": {\n \"description\": \"If set to true all actions on the underlying managed objects are not\\ngoint to be performed, except for delete actions.\",\n \"type\": \"boolean\"\n },\n \"persistentVolumeClaimRetentionPolicy\": {\n \"description\": \"The field controls if and how PVCs are deleted during the lifecycle of a StatefulSet.\\nThe default behavior is all PVCs are retained.\\nThis is an alpha field from kubernetes 1.23 until 1.26 and a beta field from 1.26.\\nIt requires enabling the StatefulSetAutoDeletePVC feature gate.\",\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 \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the Alertmanager pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"alertmanager\\\" label, set to the name of the Alertmanager instance.\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the Alertmanager instance.\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"alertmanager\\\".\\n* \\\"app.kubernetes.io/version\\\" label, set to the Alertmanager version.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"alertmanager\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefaults to `web`.\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Size is the expected size of the alertmanager cluster. The controller will\\neventually make the size of the running cluster equal to the expected\\nsize.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Define resources requests and limits for single Pods.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"retention\": {\n \"default\": \"120h\",\n \"description\": \"Time duration Alertmanager shall retain data for. Default is '120h',\\nand must match the regular expression `[0-9]+(ms|s|m|h)` (milliseconds seconds minutes hours).\",\n \"pattern\": \"^(0|(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$\",\n \"type\": \"string\"\n },\n \"routePrefix\": {\n \"description\": \"The route prefix Alertmanager registers HTTP handlers for. This is useful,\\nif using ExternalURL and a proxy is rewriting HTTP routes of a request,\\nand the actual ExternalURL is still true, but the server serves requests\\nunder a different route prefix. For example for use with `kubectl proxy`.\",\n \"type\": \"string\"\n },\n \"secrets\": {\n \"description\": \"Secrets is a list of Secrets in the same namespace as the Alertmanager\\nobject, which shall be mounted into the Alertmanager Pods.\\nEach Secret is added to the StatefulSet definition as a volume named `secret-\\u003csecret-name\\u003e`.\\nThe Secrets are mounted into `/etc/alertmanager/secrets/\\u003csecret-name\\u003e` in the 'alertmanager' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nPrometheus Pods.\",\n \"type\": \"string\"\n },\n \"sha\": {\n \"description\": \"SHA of Alertmanager container image to be deployed. Defaults to the value of `version`.\\nSimilar to a tag, but the SHA explicitly deploys an immutable container image.\\nVersion and Tag are ignored if SHA is set.\\nDeprecated: use 'image' instead. The image digest can be specified as part of the image URL.\",\n \"type\": \"string\"\n },\n \"storage\": {\n \"description\": \"Storage is the definition of how storage will be used by the Alertmanager\\ninstances.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\n },\n \"tag\": {\n \"description\": \"Tag of Alertmanager container image to be deployed. Defaults to the value of `version`.\\nVersion is ignored if Tag is set.\\nDeprecated: use 'image' instead. The image tag can be specified as part of the image URL.\",\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 \"topologySpreadConstraints\": {\n \"description\": \"If specified, the pod's topology spread constraints.\",\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\\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\\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\\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\\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 \"version\": {\n \"description\": \"Version the cluster should be on.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition.\\nVolumeMounts specified will be appended to other VolumeMounts in the alertmanager container,\\nthat are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows configuration of additional volumes on the output StatefulSet definition.\\nVolumes specified will be appended to other volumes that are generated as a result of\\nStorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"web\": {\n \"description\": \"Defines the web command line flags when starting Alertmanager.\",\n \"properties\": {\n \"getConcurrency\": {\n \"description\": \"Maximum number of GET requests processed concurrently. This corresponds to the\\nAlertmanager's `--web.get-concurrency` flag.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"timeout\": {\n \"description\": \"Timeout for HTTP requests. This corresponds to the Alertmanager's\\n`--web.timeout` flag.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Alertmanager\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Alertmanager", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/AlertmanagerConfig.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/AlertmanagerConfig.json new file mode 100644 index 00000000000..76690410319 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/AlertmanagerConfig.json @@ -0,0 +1,196 @@ +{ + "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": "AlertmanagerConfig", + "schema": "{\n \"description\": \"AlertmanagerConfig configures the Prometheus Alertmanager,\\nspecifying how alerts should be grouped, inhibited and notified to external systems.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"AlertmanagerConfigSpec is a specification of the desired behavior of the\\nAlertmanager configuration.\\nBy default, the Alertmanager configuration only applies to alerts for which\\nthe `namespace` label is equal to the namespace of the AlertmanagerConfig\\nresource (see the `.spec.alertmanagerConfigMatcherStrategy` field of the\\nAlertmanager CRD).\",\n \"properties\": {\n \"inhibitRules\": {\n \"description\": \"List of inhibition rules. The rules will only apply to alerts matching\\nthe resource's namespace.\",\n \"items\": {\n \"description\": \"InhibitRule defines an inhibition rule that allows to mute alerts when other\\nalerts are already firing.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#inhibit_rule\",\n \"properties\": {\n \"equal\": {\n \"description\": \"Labels that must have an equal value in the source and target alert for\\nthe inhibition to take effect.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sourceMatch\": {\n \"description\": \"Matchers for which one or more alerts have to exist for the inhibition\\nto take effect. The operator enforces that the alert matches the\\nresource's namespace.\",\n \"items\": {\n \"description\": \"Matcher defines how to match on alert's labels.\",\n \"properties\": {\n \"matchType\": {\n \"description\": \"Match operation available with AlertManager \\u003e= v0.22.0 and\\ntakes precedence over Regex (deprecated) if non-empty.\",\n \"enum\": [\n \"!=\",\n \"=\",\n \"=~\",\n \"!~\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Label to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"Whether to match on equality (false) or regular-expression (true).\\nDeprecated: for AlertManager \\u003e= v0.22.0, `matchType` should be used instead.\",\n \"type\": \"boolean\"\n },\n \"value\": {\n \"description\": \"Label value to match.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"targetMatch\": {\n \"description\": \"Matchers that have to be fulfilled in the alerts to be muted. The\\noperator enforces that the alert matches the resource's namespace.\",\n \"items\": {\n \"description\": \"Matcher defines how to match on alert's labels.\",\n \"properties\": {\n \"matchType\": {\n \"description\": \"Match operation available with AlertManager \\u003e= v0.22.0 and\\ntakes precedence over Regex (deprecated) if non-empty.\",\n \"enum\": [\n \"!=\",\n \"=\",\n \"=~\",\n \"!~\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Label to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"Whether to match on equality (false) or regular-expression (true).\\nDeprecated: for AlertManager \\u003e= v0.22.0, `matchType` should be used instead.\",\n \"type\": \"boolean\"\n },\n \"value\": {\n \"description\": \"Label value to match.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"muteTimeIntervals\": {\n \"description\": \"List of MuteTimeInterval specifying when the routes should be muted.\",\n \"items\": {\n \"description\": \"MuteTimeInterval specifies the periods in time when notifications will be muted\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the time interval\",\n \"type\": \"string\"\n },\n \"timeIntervals\": {\n \"description\": \"TimeIntervals is a list of TimeInterval\",\n \"items\": {\n \"description\": \"TimeInterval describes intervals of time\",\n \"properties\": {\n \"daysOfMonth\": {\n \"description\": \"DaysOfMonth is a list of DayOfMonthRange\",\n \"items\": {\n \"description\": \"DayOfMonthRange is an inclusive range of days of the month beginning at 1\",\n \"properties\": {\n \"end\": {\n \"description\": \"End of the inclusive range\",\n \"maximum\": 31,\n \"minimum\": -31,\n \"type\": \"integer\"\n },\n \"start\": {\n \"description\": \"Start of the inclusive range\",\n \"maximum\": 31,\n \"minimum\": -31,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"months\": {\n \"description\": \"Months is a list of MonthRange\",\n \"items\": {\n \"description\": \"MonthRange is an inclusive range of months of the year beginning in January\\nMonths can be specified by name (e.g 'January') by numerical month (e.g '1') or as an inclusive range (e.g 'January:March', '1:3', '1:March')\",\n \"pattern\": \"^((?i)january|february|march|april|may|june|july|august|september|october|november|december|1[0-2]|[1-9])(?:((:((?i)january|february|march|april|may|june|july|august|september|october|november|december|1[0-2]|[1-9]))$)|$)\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"times\": {\n \"description\": \"Times is a list of TimeRange\",\n \"items\": {\n \"description\": \"TimeRange defines a start and end time in 24hr format\",\n \"properties\": {\n \"endTime\": {\n \"description\": \"EndTime is the end time in 24hr format.\",\n \"pattern\": \"^((([01][0-9])|(2[0-3])):[0-5][0-9])$|(^24:00$)\",\n \"type\": \"string\"\n },\n \"startTime\": {\n \"description\": \"StartTime is the start time in 24hr format.\",\n \"pattern\": \"^((([01][0-9])|(2[0-3])):[0-5][0-9])$|(^24:00$)\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"weekdays\": {\n \"description\": \"Weekdays is a list of WeekdayRange\",\n \"items\": {\n \"description\": \"WeekdayRange is an inclusive range of days of the week beginning on Sunday\\nDays can be specified by name (e.g 'Sunday') or as an inclusive range (e.g 'Monday:Friday')\",\n \"pattern\": \"^((?i)sun|mon|tues|wednes|thurs|fri|satur)day(?:((:(sun|mon|tues|wednes|thurs|fri|satur)day)$)|$)\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"years\": {\n \"description\": \"Years is a list of YearRange\",\n \"items\": {\n \"description\": \"YearRange is an inclusive range of years\",\n \"pattern\": \"^2\\\\d{3}(?::2\\\\d{3}|$)\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\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 \"receivers\": {\n \"description\": \"List of receivers.\",\n \"items\": {\n \"description\": \"Receiver defines one or more notification integrations.\",\n \"properties\": {\n \"discordConfigs\": {\n \"description\": \"List of Discord configurations.\",\n \"items\": {\n \"description\": \"DiscordConfig configures notifications via Discord.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#discord_config\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The secret's key that contains the Discord webhook URL.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"The template of the message's body.\",\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"title\": {\n \"description\": \"The template of the message's title.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"apiURL\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"emailConfigs\": {\n \"description\": \"List of Email configurations.\",\n \"items\": {\n \"description\": \"EmailConfig configures notifications via Email.\",\n \"properties\": {\n \"authIdentity\": {\n \"description\": \"The identity to use for authentication.\",\n \"type\": \"string\"\n },\n \"authPassword\": {\n \"description\": \"The secret's key that contains the password to use for authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authSecret\": {\n \"description\": \"The secret's key that contains the CRAM-MD5 secret.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authUsername\": {\n \"description\": \"The username to use for authentication.\",\n \"type\": \"string\"\n },\n \"from\": {\n \"description\": \"The sender address.\",\n \"type\": \"string\"\n },\n \"headers\": {\n \"description\": \"Further headers email header key/value pairs. Overrides any headers\\npreviously set by the notification implementation.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hello\": {\n \"description\": \"The hostname to identify to the SMTP server.\",\n \"type\": \"string\"\n },\n \"html\": {\n \"description\": \"The HTML body of the email notification.\",\n \"type\": \"string\"\n },\n \"requireTLS\": {\n \"description\": \"The SMTP TLS requirement.\\nNote that Go does not support unencrypted connections to remote SMTP endpoints.\",\n \"type\": \"boolean\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"smarthost\": {\n \"description\": \"The SMTP host and port through which emails are sent. E.g. example.com:25\",\n \"type\": \"string\"\n },\n \"text\": {\n \"description\": \"The text body of the email notification.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"to\": {\n \"description\": \"The email address to send notifications to.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"msteamsConfigs\": {\n \"description\": \"List of MSTeams configurations.\\nIt requires Alertmanager \\u003e= 0.26.0.\",\n \"items\": {\n \"description\": \"MSTeamsConfig configures notifications via Microsoft Teams.\\nIt requires Alertmanager \\u003e= 0.26.0.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"sendResolved\": {\n \"description\": \"Whether to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"summary\": {\n \"description\": \"Message summary template.\\nIt requires Alertmanager \\u003e= 0.27.0.\",\n \"type\": \"string\"\n },\n \"text\": {\n \"description\": \"Message body template.\",\n \"type\": \"string\"\n },\n \"title\": {\n \"description\": \"Message title template.\",\n \"type\": \"string\"\n },\n \"webhookUrl\": {\n \"description\": \"MSTeams webhook URL.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"required\": [\n \"webhookUrl\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the receiver. Must be unique across all items from the list.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"opsgenieConfigs\": {\n \"description\": \"List of OpsGenie configurations.\",\n \"items\": {\n \"description\": \"OpsGenieConfig configures notifications via OpsGenie.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#opsgenie_config\",\n \"properties\": {\n \"actions\": {\n \"description\": \"Comma separated list of actions that will be available for the alert.\",\n \"type\": \"string\"\n },\n \"apiKey\": {\n \"description\": \"The secret's key that contains the OpsGenie API key.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"apiURL\": {\n \"description\": \"The URL to send OpsGenie API requests to.\",\n \"type\": \"string\"\n },\n \"description\": {\n \"description\": \"Description of the incident.\",\n \"type\": \"string\"\n },\n \"details\": {\n \"description\": \"A set of arbitrary key/value pairs that provide further detail about the incident.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"entity\": {\n \"description\": \"Optional field that can be used to specify which domain alert is related to.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Alert text limited to 130 characters.\",\n \"type\": \"string\"\n },\n \"note\": {\n \"description\": \"Additional alert note.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"Priority level of alert. Possible values are P1, P2, P3, P4, and P5.\",\n \"type\": \"string\"\n },\n \"responders\": {\n \"description\": \"List of responders responsible for notifications.\",\n \"items\": {\n \"description\": \"OpsGenieConfigResponder defines a responder to an incident.\\nOne of `id`, `name` or `username` has to be defined.\",\n \"properties\": {\n \"id\": {\n \"description\": \"ID of the responder.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the responder.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type of responder.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username of the responder.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"source\": {\n \"description\": \"Backlink to the sender of the notification.\",\n \"type\": \"string\"\n },\n \"tags\": {\n \"description\": \"Comma separated list of tags attached to the notifications.\",\n \"type\": \"string\"\n },\n \"updateAlerts\": {\n \"description\": \"Whether to update message and description of the alert in OpsGenie if it already exists\\nBy default, the alert is never updated in OpsGenie, the new message only appears in activity log.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pagerdutyConfigs\": {\n \"description\": \"List of PagerDuty configurations.\",\n \"items\": {\n \"description\": \"PagerDutyConfig configures notifications via PagerDuty.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#pagerduty_config\",\n \"properties\": {\n \"class\": {\n \"description\": \"The class/type of the event.\",\n \"type\": \"string\"\n },\n \"client\": {\n \"description\": \"Client identification.\",\n \"type\": \"string\"\n },\n \"clientURL\": {\n \"description\": \"Backlink to the sender of notification.\",\n \"type\": \"string\"\n },\n \"component\": {\n \"description\": \"The part or component of the affected system that is broken.\",\n \"type\": \"string\"\n },\n \"description\": {\n \"description\": \"Description of the incident.\",\n \"type\": \"string\"\n },\n \"details\": {\n \"description\": \"Arbitrary key/value pairs that provide further detail about the incident.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"group\": {\n \"description\": \"A cluster or grouping of sources.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"pagerDutyImageConfigs\": {\n \"description\": \"A list of image details to attach that provide further detail about an incident.\",\n \"items\": {\n \"description\": \"PagerDutyImageConfig attaches images to an incident\",\n \"properties\": {\n \"alt\": {\n \"description\": \"Alt is the optional alternative text for the image.\",\n \"type\": \"string\"\n },\n \"href\": {\n \"description\": \"Optional URL; makes the image a clickable link.\",\n \"type\": \"string\"\n },\n \"src\": {\n \"description\": \"Src of the image being attached to the incident\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pagerDutyLinkConfigs\": {\n \"description\": \"A list of link details to attach that provide further detail about an incident.\",\n \"items\": {\n \"description\": \"PagerDutyLinkConfig attaches text links to an incident\",\n \"properties\": {\n \"alt\": {\n \"description\": \"Text that describes the purpose of the link, and can be used as the link's text.\",\n \"type\": \"string\"\n },\n \"href\": {\n \"description\": \"Href is the URL of the link to be attached\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"routingKey\": {\n \"description\": \"The secret's key that contains the PagerDuty integration key (when using\\nEvents API v2). Either this field or `serviceKey` needs to be defined.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"serviceKey\": {\n \"description\": \"The secret's key that contains the PagerDuty service key (when using\\nintegration type \\\"Prometheus\\\"). Either this field or `routingKey` needs to\\nbe defined.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"severity\": {\n \"description\": \"Severity of the incident.\",\n \"type\": \"string\"\n },\n \"source\": {\n \"description\": \"Unique location of the affected system.\",\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"The URL to send requests to.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"pushoverConfigs\": {\n \"description\": \"List of Pushover configurations.\",\n \"items\": {\n \"description\": \"PushoverConfig configures notifications via Pushover.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#pushover_config\",\n \"properties\": {\n \"device\": {\n \"description\": \"The name of a device to send the notification to\",\n \"type\": \"string\"\n },\n \"expire\": {\n \"description\": \"How long your notification will continue to be retried for, unless the user\\nacknowledges the notification.\",\n \"pattern\": \"^(([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 \"html\": {\n \"description\": \"Whether notification message is HTML or plain text.\",\n \"type\": \"boolean\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Notification message.\",\n \"type\": \"string\"\n },\n \"priority\": {\n \"description\": \"Priority, see https://pushover.net/api#priority\",\n \"type\": \"string\"\n },\n \"retry\": {\n \"description\": \"How often the Pushover servers will send the same notification to the user.\\nMust be at least 30 seconds.\",\n \"pattern\": \"^(([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 \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"sound\": {\n \"description\": \"The name of one of the sounds supported by device clients to override the user's default sound choice\",\n \"type\": \"string\"\n },\n \"title\": {\n \"description\": \"Notification title.\",\n \"type\": \"string\"\n },\n \"token\": {\n \"description\": \"The secret's key that contains the registered application's API token, see https://pushover.net/apps.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\\nEither `token` or `tokenFile` is required.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tokenFile\": {\n \"description\": \"The token file that contains the registered application's API token, see https://pushover.net/apps.\\nEither `token` or `tokenFile` is required.\\nIt requires Alertmanager \\u003e= v0.26.0.\",\n \"type\": \"string\"\n },\n \"ttl\": {\n \"description\": \"The time to live definition for the alert notification\",\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 \"url\": {\n \"description\": \"A supplementary URL shown alongside the message.\",\n \"type\": \"string\"\n },\n \"urlTitle\": {\n \"description\": \"A title for supplementary URL, otherwise just the URL is shown\",\n \"type\": \"string\"\n },\n \"userKey\": {\n \"description\": \"The secret's key that contains the recipient user's user key.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\\nEither `userKey` or `userKeyFile` is required.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"userKeyFile\": {\n \"description\": \"The user key file that contains the recipient user's user key.\\nEither `userKey` or `userKeyFile` is required.\\nIt requires Alertmanager \\u003e= v0.26.0.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"slackConfigs\": {\n \"description\": \"List of Slack configurations.\",\n \"items\": {\n \"description\": \"SlackConfig configures notifications via Slack.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#slack_config\",\n \"properties\": {\n \"actions\": {\n \"description\": \"A list of Slack actions that are sent with each notification.\",\n \"items\": {\n \"description\": \"SlackAction configures a single Slack action that is sent with each\\nnotification.\\nSee https://api.slack.com/docs/message-attachments#action_fields and\\nhttps://api.slack.com/docs/message-buttons for more information.\",\n \"properties\": {\n \"confirm\": {\n \"description\": \"SlackConfirmationField protect users from destructive actions or\\nparticularly distinguished decisions by asking them to confirm their button\\nclick one more time.\\nSee https://api.slack.com/docs/interactive-message-field-guide#confirmation_fields\\nfor more information.\",\n \"properties\": {\n \"dismissText\": {\n \"type\": \"string\"\n },\n \"okText\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"text\"\n ],\n \"type\": \"object\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"value\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"text\",\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"apiURL\": {\n \"description\": \"The secret's key that contains the Slack webhook URL.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"callbackId\": {\n \"type\": \"string\"\n },\n \"channel\": {\n \"description\": \"The channel or user to send notifications to.\",\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"fallback\": {\n \"type\": \"string\"\n },\n \"fields\": {\n \"description\": \"A list of Slack fields that are sent with each notification.\",\n \"items\": {\n \"description\": \"SlackField configures a single Slack field that is sent with each notification.\\nEach field must contain a title, value, and optionally, a boolean value to indicate if the field\\nis short enough to be displayed next to other fields designated as short.\\nSee https://api.slack.com/docs/message-attachments#fields for more information.\",\n \"properties\": {\n \"short\": {\n \"type\": \"boolean\"\n },\n \"title\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"title\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"footer\": {\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"iconEmoji\": {\n \"type\": \"string\"\n },\n \"iconURL\": {\n \"type\": \"string\"\n },\n \"imageURL\": {\n \"type\": \"string\"\n },\n \"linkNames\": {\n \"type\": \"boolean\"\n },\n \"mrkdwnIn\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"pretext\": {\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"shortFields\": {\n \"type\": \"boolean\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"thumbURL\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"titleLink\": {\n \"type\": \"string\"\n },\n \"username\": {\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"snsConfigs\": {\n \"description\": \"List of SNS configurations\",\n \"items\": {\n \"description\": \"SNSConfig configures notifications via AWS SNS.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#sns_configs\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The SNS API URL i.e. https://sns.us-east-2.amazonaws.com.\\nIf not specified, the SNS API URL from the SNS SDK will be used.\",\n \"type\": \"string\"\n },\n \"attributes\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"SNS message attributes.\",\n \"type\": \"object\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"The message content of the SNS notification.\",\n \"type\": \"string\"\n },\n \"phoneNumber\": {\n \"description\": \"Phone number if message is delivered via SMS in E.164 format.\\nIf you don't specify this value, you must specify a value for the TopicARN or TargetARN.\",\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"sigv4\": {\n \"description\": \"Configures AWS's Signature Verification 4 signing process to sign requests.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"subject\": {\n \"description\": \"Subject line when the message is delivered to email endpoints.\",\n \"type\": \"string\"\n },\n \"targetARN\": {\n \"description\": \"The mobile platform endpoint ARN if message is delivered via mobile notifications.\\nIf you don't specify this value, you must specify a value for the topic_arn or PhoneNumber.\",\n \"type\": \"string\"\n },\n \"topicARN\": {\n \"description\": \"SNS topic ARN, i.e. arn:aws:sns:us-east-2:698519295917:My-Topic\\nIf you don't specify this value, you must specify a value for the PhoneNumber or TargetARN.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"telegramConfigs\": {\n \"description\": \"List of Telegram configurations.\",\n \"items\": {\n \"description\": \"TelegramConfig configures notifications via Telegram.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#telegram_config\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The Telegram API URL i.e. https://api.telegram.org.\\nIf not specified, default API URL will be used.\",\n \"type\": \"string\"\n },\n \"botToken\": {\n \"description\": \"Telegram bot token. It is mutually exclusive with `botTokenFile`.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\\n\\nEither `botToken` or `botTokenFile` is required.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"botTokenFile\": {\n \"description\": \"File to read the Telegram bot token from. It is mutually exclusive with `botToken`.\\nEither `botToken` or `botTokenFile` is required.\\n\\nIt requires Alertmanager \\u003e= v0.26.0.\",\n \"type\": \"string\"\n },\n \"chatID\": {\n \"description\": \"The Telegram chat ID.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"disableNotifications\": {\n \"description\": \"Disable telegram notifications\",\n \"type\": \"boolean\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Message template\",\n \"type\": \"string\"\n },\n \"messageThreadID\": {\n \"description\": \"The Telegram Group Topic ID.\\nIt requires Alertmanager \\u003e= 0.26.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"parseMode\": {\n \"description\": \"Parse mode for telegram message\",\n \"enum\": [\n \"MarkdownV2\",\n \"Markdown\",\n \"HTML\"\n ],\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether to notify about resolved alerts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"chatID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"victoropsConfigs\": {\n \"description\": \"List of VictorOps configurations.\",\n \"items\": {\n \"description\": \"VictorOpsConfig configures notifications via VictorOps.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#victorops_config\",\n \"properties\": {\n \"apiKey\": {\n \"description\": \"The secret's key that contains the API key to use when talking to the VictorOps API.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"apiUrl\": {\n \"description\": \"The VictorOps API URL.\",\n \"type\": \"string\"\n },\n \"customFields\": {\n \"description\": \"Additional custom fields for notification.\",\n \"items\": {\n \"description\": \"KeyValue defines a (key, value) tuple.\",\n \"properties\": {\n \"key\": {\n \"description\": \"Key of the tuple.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value of the tuple.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"key\",\n \"value\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"entityDisplayName\": {\n \"description\": \"Contains summary of the alerted problem.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"The HTTP client's configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"messageType\": {\n \"description\": \"Describes the behavior of the alert (CRITICAL, WARNING, INFO).\",\n \"type\": \"string\"\n },\n \"monitoringTool\": {\n \"description\": \"The monitoring tool the state message is from.\",\n \"type\": \"string\"\n },\n \"routingKey\": {\n \"description\": \"A key used to map the alert to a team.\",\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"stateMessage\": {\n \"description\": \"Contains long explanation of the alerted problem.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"webexConfigs\": {\n \"description\": \"List of Webex configurations.\",\n \"items\": {\n \"description\": \"WebexConfig configures notification via Cisco Webex\\nSee https://prometheus.io/docs/alerting/latest/configuration/#webex_config\",\n \"properties\": {\n \"apiURL\": {\n \"description\": \"The Webex Teams API URL i.e. https://webexapis.com/v1/messages\\nProvide if different from the default API URL.\",\n \"pattern\": \"^https?://.+$\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"The HTTP client's configuration.\\nYou must supply the bot token via the `httpConfig.authorization` field.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"Message template\",\n \"type\": \"string\"\n },\n \"roomID\": {\n \"description\": \"ID of the Webex Teams room where to send the messages.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether to notify about resolved alerts.\",\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"roomID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"webhookConfigs\": {\n \"description\": \"List of webhook configurations.\",\n \"items\": {\n \"description\": \"WebhookConfig configures notifications via a generic receiver supporting the webhook payload.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#webhook_config\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"maxAlerts\": {\n \"description\": \"Maximum number of alerts to be sent per webhook message. When 0, all alerts are included.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"url\": {\n \"description\": \"The URL to send HTTP POST requests to. `urlSecret` takes precedence over\\n`url`. One of `urlSecret` and `url` should be defined.\",\n \"type\": \"string\"\n },\n \"urlSecret\": {\n \"description\": \"The secret's key that contains the webhook URL to send HTTP requests to.\\n`urlSecret` takes precedence over `url`. One of `urlSecret` and `url`\\nshould be defined.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"wechatConfigs\": {\n \"description\": \"List of WeChat configurations.\",\n \"items\": {\n \"description\": \"WeChatConfig configures notifications via WeChat.\\nSee https://prometheus.io/docs/alerting/latest/configuration/#wechat_config\",\n \"properties\": {\n \"agentID\": {\n \"type\": \"string\"\n },\n \"apiSecret\": {\n \"description\": \"The secret's key that contains the WeChat API key.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"apiURL\": {\n \"description\": \"The WeChat API URL.\",\n \"type\": \"string\"\n },\n \"corpID\": {\n \"description\": \"The corp id for authentication.\",\n \"type\": \"string\"\n },\n \"httpConfig\": {\n \"description\": \"HTTP client configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration for the client.\\nThis is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth for the client.\\nThis is mutually exclusive with Authorization. If both are defined, BasicAuth takes precedence.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"The secret's key that contains the bearer token to be used by the client\\nfor authentication.\\nThe secret needs to be in the same namespace as the AlertmanagerConfig\\nobject and accessible by the Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"followRedirects\": {\n \"description\": \"FollowRedirects specifies whether the client should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 client credentials used to fetch a token for the targets.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyURL\": {\n \"description\": \"Optional proxy URL.\\n\\nIf defined, this field takes precedence over `proxyUrl`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration for the client.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"message\": {\n \"description\": \"API request data as defined by the WeChat API.\",\n \"type\": \"string\"\n },\n \"messageType\": {\n \"type\": \"string\"\n },\n \"sendResolved\": {\n \"description\": \"Whether or not to notify about resolved alerts.\",\n \"type\": \"boolean\"\n },\n \"toParty\": {\n \"type\": \"string\"\n },\n \"toTag\": {\n \"type\": \"string\"\n },\n \"toUser\": {\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 \"route\": {\n \"description\": \"The Alertmanager route definition for alerts matching the resource's\\nnamespace. If present, it will be added to the generated Alertmanager\\nconfiguration as a first-level route.\",\n \"properties\": {\n \"activeTimeIntervals\": {\n \"description\": \"ActiveTimeIntervals is a list of MuteTimeInterval names when this route should be active.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"continue\": {\n \"description\": \"Boolean indicating whether an alert should continue matching subsequent\\nsibling nodes. It will always be overridden to true for the first-level\\nroute by the Prometheus operator.\",\n \"type\": \"boolean\"\n },\n \"groupBy\": {\n \"description\": \"List of labels to group by.\\nLabels must not be repeated (unique list).\\nSpecial label \\\"...\\\" (aggregate by all possible labels), if provided, must be the only element in the list.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"groupInterval\": {\n \"description\": \"How long to wait before sending an updated notification.\\nMust match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$`\\nExample: \\\"5m\\\"\",\n \"type\": \"string\"\n },\n \"groupWait\": {\n \"description\": \"How long to wait before sending the initial notification.\\nMust match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$`\\nExample: \\\"30s\\\"\",\n \"type\": \"string\"\n },\n \"matchers\": {\n \"description\": \"List of matchers that the alert's labels should match. For the first\\nlevel route, the operator removes any existing equality and regexp\\nmatcher on the `namespace` label and adds a `namespace: \\u003cobject\\nnamespace\\u003e` matcher.\",\n \"items\": {\n \"description\": \"Matcher defines how to match on alert's labels.\",\n \"properties\": {\n \"matchType\": {\n \"description\": \"Match operation available with AlertManager \\u003e= v0.22.0 and\\ntakes precedence over Regex (deprecated) if non-empty.\",\n \"enum\": [\n \"!=\",\n \"=\",\n \"=~\",\n \"!~\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Label to match.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"regex\": {\n \"description\": \"Whether to match on equality (false) or regular-expression (true).\\nDeprecated: for AlertManager \\u003e= v0.22.0, `matchType` should be used instead.\",\n \"type\": \"boolean\"\n },\n \"value\": {\n \"description\": \"Label value to match.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"muteTimeIntervals\": {\n \"description\": \"Note: this comment applies to the field definition above but appears\\nbelow otherwise it gets included in the generated manifest.\\nCRD schema doesn't support self-referential types for now (see\\nhttps://github.com/kubernetes/kubernetes/issues/62872). We have to use\\nan alternative type to circumvent the limitation. The downside is that\\nthe Kube API can't validate the data beyond the fact that it is a valid\\nJSON representation.\\nMuteTimeIntervals is a list of MuteTimeInterval names that will mute this route when matched,\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"receiver\": {\n \"description\": \"Name of the receiver for this route. If not empty, it should be listed in\\nthe `receivers` field.\",\n \"type\": \"string\"\n },\n \"repeatInterval\": {\n \"description\": \"How long to wait before repeating the last notification.\\nMust match the regular expression`^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$`\\nExample: \\\"4h\\\"\",\n \"type\": \"string\"\n },\n \"routes\": {\n \"description\": \"Child routes.\",\n \"items\": {\n \"format\": \"textarea\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Alertmanager Config\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Alertmanager Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PodMonitor.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PodMonitor.json new file mode 100644 index 00000000000..a1c113aa2bb --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PodMonitor.json @@ -0,0 +1,196 @@ +{ + "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": "PodMonitor", + "schema": "{\n \"description\": \"The `PodMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of pods.\\nAmong other things, it allows to specify:\\n* The pods to scrape via label selectors.\\n* The container ports to scrape.\\n* Authentication credentials to use.\\n* Target and metric relabeling.\\n\\n`Prometheus` and `PrometheusAgent` objects select `PodMonitor` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired Pod selection for target discovery by Prometheus.\",\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"`attachMetadata` defines additional metadata which is added to the\\ndiscovered targets.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"bodySizeLimit\": {\n \"description\": \"When defined, bodySizeLimit specifies a job level limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"jobLabel\": {\n \"description\": \"The label to use to retrieve the job name from.\\n`jobLabel` selects the label from the associated Kubernetes `Pod`\\nobject which will be used as the `job` label for all metrics.\\n\\nFor example if `jobLabel` is set to `foo` and the Kubernetes `Pod`\\nobject is labeled with `foo: bar`, then Prometheus adds the `job=\\\"bar\\\"`\\nlabel to all ingested metrics.\\n\\nIf the value of this field is empty, the `job` label of the metrics\\ndefaults to the namespace and name of the PodMonitor object (e.g. `\\u003cnamespace\\u003e/\\u003cname\\u003e`).\",\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"namespaceSelector\": {\n \"description\": \"`namespaceSelector` defines in which namespace(s) Prometheus should discover the pods.\\nBy default, the pods are discovered in the same namespace as the `PodMonitor` object but it is possible to select pods across different/all namespaces.\",\n \"properties\": {\n \"any\": {\n \"description\": \"Boolean describing whether all namespaces are selected in contrast to a\\nlist restricting them.\",\n \"type\": \"boolean\"\n },\n \"matchNames\": {\n \"description\": \"List of namespace names to select from.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podMetricsEndpoints\": {\n \"description\": \"Defines how to scrape metrics from the selected pods.\",\n \"items\": {\n \"description\": \"PodMetricsEndpoint defines an endpoint serving Prometheus metrics to be scraped by\\nPrometheus.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"`authorization` configures the Authorization header credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"`basicAuth` configures the Basic Authentication credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"`bearerTokenSecret` specifies a key of a Secret containing the bearer\\ntoken for scraping targets. The secret needs to be in the same namespace\\nas the PodMonitor object and readable by the Prometheus Operator.\\n\\nDeprecated: use `authorization` instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHttp2\": {\n \"description\": \"`enableHttp2` can be used to disable HTTP2 when scraping the target.\",\n \"type\": \"boolean\"\n },\n \"filterRunning\": {\n \"description\": \"When true, the pods which are not running (e.g. either in Failed or\\nSucceeded state) are dropped during the target discovery.\\n\\nIf unset, the filtering is enabled.\\n\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"`followRedirects` defines whether the scrape requests should follow HTTP\\n3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"honorLabels\": {\n \"description\": \"When true, `honorLabels` preserves the metric's labels when they collide\\nwith the target's labels.\",\n \"type\": \"boolean\"\n },\n \"honorTimestamps\": {\n \"description\": \"`honorTimestamps` controls whether Prometheus preserves the timestamps\\nwhen exposed by the target.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"Interval at which Prometheus scrapes the metrics from the target.\\n\\nIf empty, Prometheus uses the global scrape interval.\",\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 \"metricRelabelings\": {\n \"description\": \"`metricRelabelings` configures the relabeling rules to apply to the\\nsamples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"oauth2\": {\n \"description\": \"`oauth2` configures the OAuth2 settings to use when scraping the target.\\n\\nIt requires Prometheus \\u003e= 2.27.0.\\n\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"params\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"`params` define optional HTTP URL parameters.\",\n \"type\": \"object\"\n },\n \"path\": {\n \"description\": \"HTTP path from which to scrape for metrics.\\n\\nIf empty, Prometheus uses the default value (e.g. `/metrics`).\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The `Pod` port name which exposes the endpoint.\\n\\nIt takes precedence over the `portNumber` and `targetPort` fields.\",\n \"type\": \"string\"\n },\n \"portNumber\": {\n \"description\": \"The `Pod` port number which exposes the endpoint.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` configures the HTTP Proxy URL (e.g.\\n\\\"http://proxyserver:2195\\\") to go through when scraping the target.\",\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"`relabelings` configures the relabeling rules to apply the target's\\nmetadata labels.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields.\\n\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"HTTP scheme to use for scraping.\\n\\n`http` and `https` are the expected values unless you rewrite the\\n`__scheme__` label via relabeling.\\n\\nIf empty, Prometheus uses the default value `http`.\",\n \"enum\": [\n \"http\",\n \"https\"\n ],\n \"type\": \"string\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Timeout after which Prometheus considers the scrape to be failed.\\n\\nIf empty, Prometheus uses the global scrape timeout unless it is less\\nthan the target's scrape interval value in which the latter is used.\",\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 \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the target port of the `Pod` object behind the Service, the\\nport must be specified with container port property.\\n\\nDeprecated: use 'port' or 'portNumber' instead.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when scraping the target.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"trackTimestampsStaleness\": {\n \"description\": \"`trackTimestampsStaleness` defines whether Prometheus tracks staleness of\\nthe metrics that have an explicit timestamp present in scraped data.\\nHas no effect if `honorTimestamps` is false.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"podTargetLabels\": {\n \"description\": \"`podTargetLabels` defines the labels which are transferred from the\\nassociated Kubernetes `Pod` object onto the ingested metrics.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sampleLimit\": {\n \"description\": \"`sampleLimit` defines a per-scrape limit on the number of scraped samples\\nthat will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeProtocols\": {\n \"description\": \"`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"selector\": {\n \"description\": \"Label selector to select the Kubernetes `Pod` objects to scrape metrics from.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"selectorMechanism\": {\n \"description\": \"Mechanism used to select the endpoints to scrape.\\nBy default, the selection process relies on relabel configurations to filter the discovered targets.\\nAlternatively, you can opt in for role selectors, which may offer better efficiency in large clusters.\\nWhich strategy is best for your use case needs to be carefully evaluated.\\n\\nIt requires Prometheus \\u003e= v2.17.0.\",\n \"enum\": [\n \"RelabelConfig\",\n \"RoleSelector\"\n ],\n \"type\": \"string\"\n },\n \"targetLimit\": {\n \"description\": \"`targetLimit` defines a limit on the number of scraped targets that will\\nbe accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"selector\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Pod Monitor\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Pod Monitor", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Probe.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Probe.json new file mode 100644 index 00000000000..69d920a5804 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Probe.json @@ -0,0 +1,196 @@ +{ + "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": "Probe", + "schema": "{\n \"description\": \"The `Probe` custom resource definition (CRD) defines how to scrape metrics from prober exporters such as the [blackbox exporter](https://github.com/prometheus/blackbox_exporter).\\n\\nThe `Probe` resource needs 2 pieces of information:\\n* The list of probed addresses which can be defined statically or by discovering Kubernetes Ingress objects.\\n* The prober which exposes the availability of probed endpoints (over various protocols such HTTP, TCP, ICMP, ...) as Prometheus metrics.\\n\\n`Prometheus` and `PrometheusAgent` objects select `Probe` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired Ingress selection for target discovery by Prometheus.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for this endpoint\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth allow an endpoint to authenticate over basic authentication.\\nMore info: https://prometheus.io/docs/operating/configuration/#endpoint\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenSecret\": {\n \"description\": \"Secret to mount to read bearer token for scraping targets. The secret\\nneeds to be in the same namespace as the probe and accessible by\\nthe Prometheus Operator.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"interval\": {\n \"description\": \"Interval at which targets are probed using the configured prober.\\nIf not specified Prometheus' global scrape interval is used.\",\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 \"jobName\": {\n \"description\": \"The job name assigned to scraped metrics by default.\",\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelConfigs to apply to samples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"module\": {\n \"description\": \"The module to use for probing specifying how to probe the target.\\nExample module configuring in the blackbox exporter:\\nhttps://github.com/prometheus/blackbox_exporter/blob/master/example.yml\",\n \"type\": \"string\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"oauth2\": {\n \"description\": \"OAuth2 for the URL. Only valid in Prometheus versions 2.27.0 and newer.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"prober\": {\n \"description\": \"Specification for the prober to use for probing targets.\\nThe prober.URL parameter is required. Targets cannot be probed if left empty.\",\n \"properties\": {\n \"path\": {\n \"default\": \"/probe\",\n \"description\": \"Path to collect metrics from.\\nDefaults to `/probe`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"Optional ProxyURL.\",\n \"type\": \"string\"\n },\n \"scheme\": {\n \"description\": \"HTTP scheme to use for scraping.\\n`http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling.\\nIf empty, Prometheus uses the default value `http`.\",\n \"enum\": [\n \"http\",\n \"https\"\n ],\n \"type\": \"string\"\n },\n \"url\": {\n \"description\": \"Mandatory URL of the prober.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeProtocols\": {\n \"description\": \"`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Timeout for scraping metrics from the Prometheus exporter.\\nIf not specified, the Prometheus global scrape timeout is used.\",\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 \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"targets\": {\n \"description\": \"Targets defines a set of static or dynamically discovered targets to probe.\",\n \"properties\": {\n \"ingress\": {\n \"description\": \"ingress defines the Ingress objects to probe and the relabeling\\nconfiguration.\\nIf `staticConfig` is also defined, `staticConfig` takes precedence.\",\n \"properties\": {\n \"namespaceSelector\": {\n \"description\": \"From which namespaces to select Ingress objects.\",\n \"properties\": {\n \"any\": {\n \"description\": \"Boolean describing whether all namespaces are selected in contrast to a\\nlist restricting them.\",\n \"type\": \"boolean\"\n },\n \"matchNames\": {\n \"description\": \"List of namespace names to select from.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"relabelingConfigs\": {\n \"description\": \"RelabelConfigs to apply to the label set of the target before it gets\\nscraped.\\nThe original ingress address is available via the\\n`__tmp_prometheus_ingress_address` label. It can be used to customize the\\nprobed URL.\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"selector\": {\n \"description\": \"Selector to select the Ingress 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 },\n \"type\": \"object\"\n },\n \"staticConfig\": {\n \"description\": \"staticConfig defines the static list of targets to probe and the\\nrelabeling configuration.\\nIf `ingress` is also defined, `staticConfig` takes precedence.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config.\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels assigned to all metrics scraped from the targets.\",\n \"type\": \"object\"\n },\n \"relabelingConfigs\": {\n \"description\": \"RelabelConfigs to apply to the label set of the targets before it gets\\nscraped.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"static\": {\n \"description\": \"The list of hosts to probe.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when scraping the endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Probe\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Probe", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Prometheus.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Prometheus.json new file mode 100644 index 00000000000..3f004898055 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/Prometheus.json @@ -0,0 +1,196 @@ +{ + "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": "Prometheus", + "schema": "{\n \"description\": \"The `Prometheus` custom resource definition (CRD) defines a desired [Prometheus](https://prometheus.io/docs/prometheus) setup to run in a Kubernetes cluster. It allows to specify many options such as the number of replicas, persistent storage, and Alertmanagers where firing alerts should be sent and many more.\\n\\nFor each `Prometheus` resource, the Operator deploys one or several `StatefulSet` objects in the same namespace. The number of StatefulSets is equal to the number of shards which is 1 by default.\\n\\nThe resource defines via label and namespace selectors which `ServiceMonitor`, `PodMonitor`, `Probe` and `PrometheusRule` objects should be associated to the deployed Prometheus instances.\\n\\nThe Operator continuously reconciles the scrape and rules configuration and a sidecar container running in the Prometheus pods triggers a reload of the configuration when needed.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the Prometheus cluster. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalAlertManagerConfigs\": {\n \"description\": \"AdditionalAlertManagerConfigs specifies a key of a Secret containing\\nadditional Prometheus Alertmanager configurations. The Alertmanager\\nconfigurations are appended to the configuration generated by the\\nPrometheus Operator. They must be formatted according to the official\\nPrometheus documentation:\\n\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config\\n\\nThe user is responsible for making sure that the configurations are valid\\n\\nNote that using this feature may expose the possibility to break\\nupgrades of Prometheus. It is advised to review Prometheus release notes\\nto ensure that no incompatible AlertManager configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"additionalAlertRelabelConfigs\": {\n \"description\": \"AdditionalAlertRelabelConfigs specifies a key of a Secret containing\\nadditional Prometheus alert relabel configurations. The alert relabel\\nconfigurations are appended to the configuration generated by the\\nPrometheus Operator. They must be formatted according to the official\\nPrometheus documentation:\\n\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs\\n\\nThe user is responsible for making sure that the configurations are valid\\n\\nNote that using this feature may expose the possibility to break\\nupgrades of Prometheus. It is advised to review Prometheus release notes\\nto ensure that no incompatible alert relabel configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the 'prometheus' container.\\n\\nIt is intended for e.g. activating hidden flags which are not supported by\\nthe dedicated configuration options yet. The arguments are passed as-is to the\\nPrometheus container which may cause issues if they are invalid or not supported\\nby the given Prometheus version.\\n\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument, the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"additionalScrapeConfigs\": {\n \"description\": \"AdditionalScrapeConfigs allows specifying a key of a Secret containing\\nadditional Prometheus scrape configurations. Scrape configurations\\nspecified are appended to the configurations generated by the Prometheus\\nOperator. Job configurations specified must have the form as specified\\nin the official Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.\\nAs scrape configs are appended, the user is responsible to make sure it\\nis valid. Note that using this feature may expose the possibility to\\nbreak upgrades of Prometheus. It is advised to review Prometheus release\\nnotes to ensure that no incompatible scrape configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\": \"Defines the Pods' affinity scheduling rules if specified.\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"alerting\": {\n \"description\": \"Defines the settings related to Alertmanager.\",\n \"properties\": {\n \"alertmanagers\": {\n \"description\": \"Alertmanager endpoints where Prometheus should send alerts to.\",\n \"items\": {\n \"description\": \"AlertmanagerEndpoints defines a selection of a single Endpoints object\\ncontaining Alertmanager IPs to fire alerts against.\",\n \"properties\": {\n \"alertRelabelings\": {\n \"description\": \"Relabeling configs applied before sending alerts to a specific Alertmanager.\\nIt requires Prometheus \\u003e= v2.51.0.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"apiVersion\": {\n \"description\": \"Version of the Alertmanager API that Prometheus uses to send alerts.\\nIt can be \\\"V1\\\" or \\\"V2\\\".\\nThe field has no effect for Prometheus \\u003e= v3.0.0 because only the v2 API is supported.\",\n \"enum\": [\n \"v1\",\n \"V1\",\n \"v2\",\n \"V2\"\n ],\n \"type\": \"string\"\n },\n \"authorization\": {\n \"description\": \"Authorization section for Alertmanager.\\n\\nCannot be set at the same time as `basicAuth`, `bearerTokenFile` or `sigv4`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for Alertmanager.\\n\\nCannot be set at the same time as `bearerTokenFile`, `authorization` or `sigv4`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for Alertmanager.\\n\\nCannot be set at the same time as `basicAuth`, `authorization`, or `sigv4`.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"enableHttp2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"name\": {\n \"description\": \"Name of the Endpoints object in the namespace.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the Endpoints object.\\n\\nIf not set, the object will be discovered in the namespace of the\\nPrometheus object.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"pathPrefix\": {\n \"description\": \"Prefix for the HTTP path alerts are pushed to.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Port on which the Alertmanager API is exposed.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"Relabel configuration applied to the discovered Alertmanagers.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"Scheme to use when firing alerts.\",\n \"type\": \"string\"\n },\n \"sigv4\": {\n \"description\": \"Sigv4 allows to configures AWS's Signature Verification 4 for the URL.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\\n\\nCannot be set at the same time as `basicAuth`, `bearerTokenFile` or `authorization`.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"timeout\": {\n \"description\": \"Timeout is a per-target Alertmanager timeout when pushing alerts.\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use for Alertmanager.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"name\",\n \"port\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"alertmanagers\"\n ],\n \"type\": \"object\"\n },\n \"allowOverlappingBlocks\": {\n \"description\": \"AllowOverlappingBlocks enables vertical compaction and vertical query\\nmerge in Prometheus.\\n\\nDeprecated: this flag has no effect for Prometheus \\u003e= 2.39.0 where overlapping blocks are enabled by default.\",\n \"type\": \"boolean\"\n },\n \"apiserverConfig\": {\n \"description\": \"APIServerConfig allows specifying a host and auth methods to access the\\nKuberntees API server.\\nIf null, Prometheus is assumed to run inside of the cluster: it will\\ndiscover the API servers automatically and use the Pod's CA certificate\\nand bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the API server.\\n\\nCannot be set at the same time as `basicAuth`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the API server.\\n\\nCannot be set at the same time as `authorization`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for accessing apiserver.\\n\\nCannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"host\": {\n \"description\": \"Kubernetes API address consisting of a hostname or IP address followed\\nby an optional port number.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS Config to use for the API server.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\"\n ],\n \"type\": \"object\"\n },\n \"arbitraryFSAccessThroughSMs\": {\n \"description\": \"When true, ServiceMonitor, PodMonitor and Probe object are forbidden to\\nreference arbitrary files on the file system of the 'prometheus'\\ncontainer.\\nWhen a ServiceMonitor's endpoint specifies a `bearerTokenFile` value\\n(e.g. '/var/run/secrets/kubernetes.io/serviceaccount/token'), a\\nmalicious target can get access to the Prometheus service account's\\ntoken in the Prometheus' scrape request. Setting\\n`spec.arbitraryFSAccessThroughSM` to 'true' would prevent the attack.\\nUsers should instead provide the credentials using the\\n`spec.bearerTokenSecret` field.\",\n \"properties\": {\n \"deny\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod.\\nIf the field isn't set, the operator mounts the service account token by default.\\n\\n**Warning:** be aware that by default, Prometheus requires the service account token for Kubernetes service discovery.\\nIt is possible to use strategic merge patch to project the service account token into the 'prometheus' container.\",\n \"type\": \"boolean\"\n },\n \"baseImage\": {\n \"description\": \"Deprecated: use 'spec.image' instead.\",\n \"type\": \"string\"\n },\n \"bodySizeLimit\": {\n \"description\": \"BodySizeLimit defines per-scrape on response body size.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"configMaps\": {\n \"description\": \"ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach ConfigMap is added to the StatefulSet definition as a volume named `configmap-\\u003cconfigmap-name\\u003e`.\\nThe ConfigMaps are mounted into /etc/prometheus/configmaps/\\u003cconfigmap-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers or modifying operator\\ngenerated containers. This can be used to allow adding an authentication\\nproxy to the Pods or to change the behavior of an operator generated\\ncontainer. Containers described here modify an operator generated\\ncontainer if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of containers managed by the operator are:\\n* `prometheus`\\n* `config-reloader`\\n* `thanos-sidecar`\\n\\nOverriding containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"disableCompaction\": {\n \"description\": \"When true, the Prometheus compaction is disabled.\\nWhen `spec.thanos.objectStorageConfig` or `spec.objectStorageConfigFile` are defined, the operator automatically\\ndisables block compaction to avoid race conditions during block uploads (as the Thanos documentation recommends).\",\n \"type\": \"boolean\"\n },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enableAdminAPI\": {\n \"description\": \"Enables access to the Prometheus web admin API.\\n\\nWARNING: Enabling the admin APIs enables mutating endpoints, to delete data,\\nshutdown Prometheus, and more. Enabling this should be done with care and the\\nuser is advised to add additional authentication authorization via a proxy to\\nensure only clients authorized to perform these actions can do so.\\n\\nFor more information:\\nhttps://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis\",\n \"type\": \"boolean\"\n },\n \"enableFeatures\": {\n \"description\": \"Enable access to Prometheus feature flags. By default, no features are enabled.\\n\\nEnabling features which are disabled by default is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept\\nthat this behaviour may break at any time without notice.\\n\\nFor more information see https://prometheus.io/docs/prometheus/latest/feature_flags/\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"enableOTLPReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the OTLP Metrics protocol.\\n\\nNote that the OTLP receiver endpoint is automatically enabled if `.spec.otlpConfig` is defined.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"type\": \"boolean\"\n },\n \"enableRemoteWriteReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the Prometheus remote\\nwrite protocol.\\n\\nWARNING: This is not considered an efficient way of ingesting samples.\\nUse it with caution for specific low-volume use cases.\\nIt is not suitable for replacing the ingestion via scraping and turning\\nPrometheus into a push-based metrics collection system.\\nFor more information see https://prometheus.io/docs/prometheus/latest/querying/api/#remote-write-receiver\\n\\nIt requires Prometheus \\u003e= v2.33.0.\",\n \"type\": \"boolean\"\n },\n \"enforcedBodySizeLimit\": {\n \"description\": \"When defined, enforcedBodySizeLimit specifies a global limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\nTargets responding with a body larger than this many bytes will cause\\nthe scrape to fail.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\\n\\nWhen both `enforcedBodySizeLimit` and `bodySizeLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined bodySizeLimit value will inherit the global bodySizeLimit value (Prometheus \\u003e= 2.45.0) or the enforcedBodySizeLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedBodySizeLimit` is greater than the `bodySizeLimit`, the `bodySizeLimit` will be set to `enforcedBodySizeLimit`.\\n* Scrape objects with a bodySizeLimit value less than or equal to enforcedBodySizeLimit keep their specific value.\\n* Scrape objects with a bodySizeLimit value greater than enforcedBodySizeLimit are set to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"enforcedKeepDroppedTargets\": {\n \"description\": \"When defined, enforcedKeepDroppedTargets specifies a global limit on the number of targets\\ndropped by relabeling that will be kept in memory. The value overrides\\nany `spec.keepDroppedTargets` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.keepDroppedTargets` is\\ngreater than zero and less than `spec.enforcedKeepDroppedTargets`.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nWhen both `enforcedKeepDroppedTargets` and `keepDroppedTargets` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined keepDroppedTargets value will inherit the global keepDroppedTargets value (Prometheus \\u003e= 2.45.0) or the enforcedKeepDroppedTargets value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedKeepDroppedTargets` is greater than the `keepDroppedTargets`, the `keepDroppedTargets` will be set to `enforcedKeepDroppedTargets`.\\n* Scrape objects with a keepDroppedTargets value less than or equal to enforcedKeepDroppedTargets keep their specific value.\\n* Scrape objects with a keepDroppedTargets value greater than enforcedKeepDroppedTargets are set to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelLimit\": {\n \"description\": \"When defined, enforcedLabelLimit specifies a global limit on the number\\nof labels per sample. The value overrides any `spec.labelLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelLimit` is\\ngreater than zero and less than `spec.enforcedLabelLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelLimit` and `labelLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelLimit value will inherit the global labelLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelLimit` is greater than the `labelLimit`, the `labelLimit` will be set to `enforcedLabelLimit`.\\n* Scrape objects with a labelLimit value less than or equal to enforcedLabelLimit keep their specific value.\\n* Scrape objects with a labelLimit value greater than enforcedLabelLimit are set to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelNameLengthLimit\": {\n \"description\": \"When defined, enforcedLabelNameLengthLimit specifies a global limit on the length\\nof labels name per sample. The value overrides any `spec.labelNameLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelNameLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelNameLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelNameLengthLimit` and `labelNameLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelNameLengthLimit value will inherit the global labelNameLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelNameLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelNameLengthLimit` is greater than the `labelNameLengthLimit`, the `labelNameLengthLimit` will be set to `enforcedLabelNameLengthLimit`.\\n* Scrape objects with a labelNameLengthLimit value less than or equal to enforcedLabelNameLengthLimit keep their specific value.\\n* Scrape objects with a labelNameLengthLimit value greater than enforcedLabelNameLengthLimit are set to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelValueLengthLimit\": {\n \"description\": \"When not null, enforcedLabelValueLengthLimit defines a global limit on the length\\nof labels value per sample. The value overrides any `spec.labelValueLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelValueLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelValueLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelValueLengthLimit` and `labelValueLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelValueLengthLimit value will inherit the global labelValueLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelValueLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelValueLengthLimit` is greater than the `labelValueLengthLimit`, the `labelValueLengthLimit` will be set to `enforcedLabelValueLengthLimit`.\\n* Scrape objects with a labelValueLengthLimit value less than or equal to enforcedLabelValueLengthLimit keep their specific value.\\n* Scrape objects with a labelValueLengthLimit value greater than enforcedLabelValueLengthLimit are set to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedNamespaceLabel\": {\n \"description\": \"When not empty, a label will be added to:\\n\\n1. All metrics scraped from `ServiceMonitor`, `PodMonitor`, `Probe` and `ScrapeConfig` objects.\\n2. All metrics generated from recording rules defined in `PrometheusRule` objects.\\n3. All alerts generated from alerting rules defined in `PrometheusRule` objects.\\n4. All vector selectors of PromQL expressions defined in `PrometheusRule` objects.\\n\\nThe label will not added for objects referenced in `spec.excludedFromEnforcement`.\\n\\nThe label's name is this field's value.\\nThe label's value is the namespace of the `ServiceMonitor`,\\n`PodMonitor`, `Probe`, `PrometheusRule` or `ScrapeConfig` object.\",\n \"type\": \"string\"\n },\n \"enforcedSampleLimit\": {\n \"description\": \"When defined, enforcedSampleLimit specifies a global limit on the number\\nof scraped samples that will be accepted. This overrides any\\n`spec.sampleLimit` set by ServiceMonitor, PodMonitor, Probe objects\\nunless `spec.sampleLimit` is greater than zero and less than\\n`spec.enforcedSampleLimit`.\\n\\nIt is meant to be used by admins to keep the overall number of\\nsamples/series under a desired limit.\\n\\nWhen both `enforcedSampleLimit` and `sampleLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined sampleLimit value will inherit the global sampleLimit value (Prometheus \\u003e= 2.45.0) or the enforcedSampleLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedSampleLimit` is greater than the `sampleLimit`, the `sampleLimit` will be set to `enforcedSampleLimit`.\\n* Scrape objects with a sampleLimit value less than or equal to enforcedSampleLimit keep their specific value.\\n* Scrape objects with a sampleLimit value greater than enforcedSampleLimit are set to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedTargetLimit\": {\n \"description\": \"When defined, enforcedTargetLimit specifies a global limit on the number\\nof scraped targets. The value overrides any `spec.targetLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.targetLimit` is\\ngreater than zero and less than `spec.enforcedTargetLimit`.\\n\\nIt is meant to be used by admins to to keep the overall number of\\ntargets under a desired limit.\\n\\nWhen both `enforcedTargetLimit` and `targetLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined targetLimit value will inherit the global targetLimit value (Prometheus \\u003e= 2.45.0) or the enforcedTargetLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedTargetLimit` is greater than the `targetLimit`, the `targetLimit` will be set to `enforcedTargetLimit`.\\n* Scrape objects with a targetLimit value less than or equal to enforcedTargetLimit keep their specific value.\\n* Scrape objects with a targetLimit value greater than enforcedTargetLimit are set to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"evaluationInterval\": {\n \"default\": \"30s\",\n \"description\": \"Interval between rule evaluations.\\nDefault: \\\"30s\\\"\",\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 \"excludedFromEnforcement\": {\n \"description\": \"List of references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects\\nto be excluded from enforcing a namespace label of origin.\\n\\nIt is only applicable if `spec.enforcedNamespaceLabel` set to true.\",\n \"items\": {\n \"description\": \"ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object.\",\n \"properties\": {\n \"group\": {\n \"default\": \"monitoring.coreos.com\",\n \"description\": \"Group of the referent. When not specified, it defaults to `monitoring.coreos.com`\",\n \"enum\": [\n \"monitoring.coreos.com\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. When not set, all resources in the namespace are matched.\",\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 \"minLength\": 1,\n \"type\": \"string\"\n },\n \"resource\": {\n \"description\": \"Resource of the referent.\",\n \"enum\": [\n \"prometheusrules\",\n \"servicemonitors\",\n \"podmonitors\",\n \"probes\",\n \"scrapeconfigs\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"exemplars\": {\n \"description\": \"Exemplars related settings that are runtime reloadable.\\nIt requires to enable the `exemplar-storage` feature flag to be effective.\",\n \"properties\": {\n \"maxSize\": {\n \"description\": \"Maximum number of exemplars stored in memory for all series.\\n\\nexemplar-storage itself must be enabled using the `spec.enableFeature`\\noption for exemplars to be scraped in the first place.\\n\\nIf not set, Prometheus uses its default value. A value of zero or less\\nthan zero disables the storage.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"externalLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The labels to add to any time series or alerts when communicating with\\nexternal systems (federation, remote storage, Alertmanager).\\nLabels defined by `spec.replicaExternalLabelName` and\\n`spec.prometheusExternalLabelName` take precedence over this list.\",\n \"type\": \"object\"\n },\n \"externalUrl\": {\n \"description\": \"The external URL under which the Prometheus service is externally\\navailable. This is necessary to generate correct URLs (for instance if\\nPrometheus is accessible behind an Ingress resource).\",\n \"type\": \"string\"\n },\n \"hostAliases\": {\n \"description\": \"Optional list of hosts and IPs that will be injected into the Pod's\\nhosts file 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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"hostNetwork\": {\n \"description\": \"Use the host's network namespace if true.\\n\\nMake sure to understand the security implications if you want to enable\\nit (https://kubernetes.io/docs/concepts/configuration/overview/).\\n\\nWhen hostNetwork is enabled, this will set the DNS policy to\\n`ClusterFirstWithHostNet` automatically (unless `.spec.DNSPolicy` is set\\nto a different value).\",\n \"type\": \"boolean\"\n },\n \"ignoreNamespaceSelectors\": {\n \"description\": \"When true, `spec.namespaceSelector` from all PodMonitor, ServiceMonitor\\nand Probe objects will be ignored. They will only discover targets\\nwithin the namespace of the PodMonitor, ServiceMonitor and Probe\\nobject.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Container image name for Prometheus. If specified, it takes precedence\\nover the `spec.baseImage`, `spec.tag` and `spec.sha` fields.\\n\\nSpecifying `spec.version` is still necessary to ensure the Prometheus\\nOperator knows which version of Prometheus is being configured.\\n\\nIf neither `spec.image` nor `spec.baseImage` are defined, the operator\\nwill use the latest upstream version of Prometheus available at the time\\nwhen the operator was released.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'prometheus', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to Secrets in the same namespace\\nto use for pulling images from registries.\\nSee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows injecting initContainers to the Pod definition. Those\\ncan be used to e.g. fetch secrets for injection into the Prometheus\\nconfiguration from external sources. Any errors during the execution of\\nan initContainer will lead to a restart of the Pod. More info:\\nhttps://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nInitContainers described here modify an operator generated init\\ncontainers if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of init container name managed by the operator are:\\n* `init-config-reloader`.\\n\\nOverriding init containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"listenLocal\": {\n \"description\": \"When true, the Prometheus server listens on the loopback address\\ninstead of the Pod IP's address.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\n },\n \"maximumStartupDurationSeconds\": {\n \"description\": \"Defines the maximum time that the `prometheus` container's startup probe will wait before being considered failed. The startup probe will return success after the WAL replay is complete.\\nIf set, the value should be greater than 60 (seconds). Otherwise it will be equal to 600 seconds (15 minutes).\",\n \"format\": \"int32\",\n \"minimum\": 60,\n \"type\": \"integer\"\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\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires\\nenabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nameValidationScheme\": {\n \"description\": \"Specifies the validation scheme for metric and label names.\",\n \"enum\": [\n \"UTF8\",\n \"Legacy\"\n ],\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Defines on which Nodes the Pods are scheduled.\",\n \"type\": \"object\"\n },\n \"otlp\": {\n \"description\": \"Settings related to the OTLP receiver feature.\\nIt requires Prometheus \\u003e= v2.55.0.\",\n \"properties\": {\n \"promoteResourceAttributes\": {\n \"description\": \"List of OpenTelemetry Attributes that should be promoted to metric labels, defaults to none.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"translationStrategy\": {\n \"description\": \"Configures how the OTLP receiver endpoint translates the incoming metrics.\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"NoUTF8EscapingWithSuffixes\",\n \"UnderscoreEscapingWithSuffixes\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"overrideHonorLabels\": {\n \"description\": \"When true, Prometheus resolves label conflicts by renaming the labels in the scraped data\\n to “exported_” for all targets created from ServiceMonitor, PodMonitor and\\nScrapeConfig objects. Otherwise the HonorLabels field of the service or pod monitor applies.\\nIn practice,`overrideHonorLaels:true` enforces `honorLabels:false`\\nfor all ServiceMonitor, PodMonitor and ScrapeConfig objects.\",\n \"type\": \"boolean\"\n },\n \"overrideHonorTimestamps\": {\n \"description\": \"When true, Prometheus ignores the timestamps for all the targets created\\nfrom service and pod monitors.\\nOtherwise the HonorTimestamps field of the service or pod monitor applies.\",\n \"type\": \"boolean\"\n },\n \"paused\": {\n \"description\": \"When a Prometheus deployment is paused, no actions except for deletion\\nwill be performed on the underlying objects.\",\n \"type\": \"boolean\"\n },\n \"persistentVolumeClaimRetentionPolicy\": {\n \"description\": \"The field controls if and how PVCs are deleted during the lifecycle of a StatefulSet.\\nThe default behavior is all PVCs are retained.\\nThis is an alpha field from kubernetes 1.23 until 1.26 and a beta field from 1.26.\\nIt requires enabling the StatefulSetAutoDeletePVC feature gate.\",\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 \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the Prometheus pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"prometheus\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"prometheus\\\".\\n* \\\"app.kubernetes.io/version\\\" label, set to the Prometheus version.\\n* \\\"operator.prometheus.io/name\\\" label, set to the name of the Prometheus object.\\n* \\\"operator.prometheus.io/shard\\\" label, set to the shard number of the Prometheus object.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"prometheus\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"podMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for PodMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podMonitorSelector\": {\n \"description\": \"PodMonitors to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podTargetLabels\": {\n \"description\": \"PodTargetLabels are appended to the `spec.podTargetLabels` field of all\\nPodMonitor and ServiceMonitor objects.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefault: \\\"web\\\"\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods.\",\n \"type\": \"string\"\n },\n \"probeNamespaceSelector\": {\n \"description\": \"Namespaces to match for Probe discovery. An empty label\\nselector matches all namespaces. A null label selector matches the\\ncurrent namespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"probeSelector\": {\n \"description\": \"Probes to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"prometheusExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the Prometheus instance\\nname. The external label will _not_ be added when the field is set to\\nthe empty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus\\\"\",\n \"type\": \"string\"\n },\n \"prometheusRulesExcludedFromEnforce\": {\n \"description\": \"Defines the list of PrometheusRule objects to which the namespace label\\nenforcement doesn't apply.\\nThis is only relevant when `spec.enforcedNamespaceLabel` is set to true.\\nDeprecated: use `spec.excludedFromEnforcement` instead.\",\n \"items\": {\n \"description\": \"PrometheusRuleExcludeConfig enables users to configure excluded\\nPrometheusRule names and their namespaces to be ignored while enforcing\\nnamespace label for alerts and metrics.\",\n \"properties\": {\n \"ruleName\": {\n \"description\": \"Name of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n },\n \"ruleNamespace\": {\n \"description\": \"Namespace of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ruleName\",\n \"ruleNamespace\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"query\": {\n \"description\": \"QuerySpec defines the configuration of the Promethus query service.\",\n \"properties\": {\n \"lookbackDelta\": {\n \"description\": \"The delta difference allowed for retrieving metrics during expression evaluations.\",\n \"type\": \"string\"\n },\n \"maxConcurrency\": {\n \"description\": \"Number of concurrent queries that can be run at once.\",\n \"format\": \"int32\",\n \"minimum\": 1,\n \"type\": \"integer\"\n },\n \"maxSamples\": {\n \"description\": \"Maximum number of samples a single query can load into memory. Note that\\nqueries will fail if they would load more samples than this into memory,\\nso this also limits the number of samples a query can return.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"timeout\": {\n \"description\": \"Maximum time a query may take before being aborted.\",\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 },\n \"type\": \"object\"\n },\n \"queryLogFile\": {\n \"description\": \"queryLogFile specifies where the file to which PromQL queries are logged.\\n\\nIf the filename has an empty path, e.g. 'query.log', The Prometheus Pods\\nwill mount the file into an emptyDir volume at `/var/log/prometheus`.\\nIf a full path is provided, e.g. '/var/log/prometheus/query.log', you\\nmust mount a volume in the specified directory and it must be writable.\\nThis is because the prometheus container runs with a read-only root\\nfilesystem for security reasons.\\nAlternatively, the location can be set to a standard I/O stream, e.g.\\n`/dev/stdout`, to log query information to the default Prometheus log\\nstream.\",\n \"type\": \"string\"\n },\n \"reloadStrategy\": {\n \"description\": \"Defines the strategy used to reload the Prometheus configuration.\\nIf not specified, the configuration is reloaded using the /-/reload HTTP endpoint.\",\n \"enum\": [\n \"HTTP\",\n \"ProcessSignal\"\n ],\n \"type\": \"string\"\n },\n \"remoteRead\": {\n \"description\": \"Defines the list of remote read configurations.\",\n \"items\": {\n \"description\": \"RemoteReadSpec defines the configuration for Prometheus to read back samples\\nfrom a remote endpoint.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the URL.\\n\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File from which to read the bearer token for the URL.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"filterExternalLabels\": {\n \"description\": \"Whether to use the external labels as selectors for the remote read endpoint.\\n\\nIt requires Prometheus \\u003e= v2.34.0.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Custom HTTP headers to be sent along with each remote read request.\\nBe aware that headers that are set by Prometheus itself can't be overwritten.\\nOnly valid in Prometheus versions 2.26.0 and newer.\",\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the remote read queue, it must be unique if specified. The\\nname is used in metrics and logging in order to differentiate read\\nconfigurations.\\n\\nIt requires Prometheus \\u003e= v2.15.0.\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration for the URL.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"readRecent\": {\n \"description\": \"Whether reads should be made for queries for time ranges that\\nthe local storage should have complete data for.\",\n \"type\": \"boolean\"\n },\n \"remoteTimeout\": {\n \"description\": \"Timeout for requests to the remote read endpoint.\",\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 \"requiredMatchers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"An optional list of equality matchers which have to be present\\nin a selector to query the remote read endpoint.\",\n \"type\": \"object\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS Config to use for the URL.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the endpoint to query from.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"remoteWrite\": {\n \"description\": \"Defines the list of remote write configurations.\",\n \"items\": {\n \"description\": \"RemoteWriteSpec defines the configuration to write samples from Prometheus\\nto a remote endpoint.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"azureAd\": {\n \"description\": \"AzureAD for the URL.\\n\\nIt requires Prometheus \\u003e= v2.45.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`.\",\n \"properties\": {\n \"cloud\": {\n \"description\": \"The Azure Cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.\",\n \"enum\": [\n \"AzureChina\",\n \"AzureGovernment\",\n \"AzurePublic\"\n ],\n \"type\": \"string\"\n },\n \"managedIdentity\": {\n \"description\": \"ManagedIdentity defines the Azure User-assigned Managed identity.\\nCannot be set at the same time as `oauth` or `sdk`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"The client id\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\"\n ],\n \"type\": \"object\"\n },\n \"oauth\": {\n \"description\": \"OAuth defines the oauth config that is being used to authenticate.\\nCannot be set at the same time as `managedIdentity` or `sdk`.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientID` is the clientId of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the client secret of the Azure Active Directory application that is being used to authenticate.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tenantId\"\n ],\n \"type\": \"object\"\n },\n \"sdk\": {\n \"description\": \"SDK defines the Azure SDK config that is being used to authenticate.\\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\\nCannot be set at the same time as `oauth` or `managedIdentity`.\\n\\nIt requires Prometheus \\u003e= 2.52.0.\",\n \"properties\": {\n \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the azure active directory application that is being used to authenticate.\",\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the URL.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File from which to read bearer token for the URL.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Custom HTTP headers to be sent along with each remote write request.\\nBe aware that headers that are set by Prometheus itself can't be overwritten.\\n\\nIt requires Prometheus \\u003e= v2.25.0.\",\n \"type\": \"object\"\n },\n \"messageVersion\": {\n \"description\": \"The Remote Write message's version to use when writing to the endpoint.\\n\\n`Version1.0` corresponds to the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0.\\n`Version2.0` corresponds to the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0.\\n\\nWhen `Version2.0` is selected, Prometheus will automatically be\\nconfigured to append the metadata of scraped metrics to the WAL.\\n\\nBefore setting this field, consult with your remote storage provider\\nwhat message version it supports.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"metadataConfig\": {\n \"description\": \"MetadataConfig configures the sending of series metadata to the remote storage.\",\n \"properties\": {\n \"send\": {\n \"description\": \"Defines whether metric metadata is sent to the remote storage or not.\",\n \"type\": \"boolean\"\n },\n \"sendInterval\": {\n \"description\": \"Defines how frequently metric metadata is sent to the remote storage.\",\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 },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the remote write queue, it must be unique if specified. The\\nname is used in metrics and logging in order to differentiate queues.\\n\\nIt requires Prometheus \\u003e= v2.15.0.\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration for the URL.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"queueConfig\": {\n \"description\": \"QueueConfig allows tuning of the remote write queue parameters.\",\n \"properties\": {\n \"batchSendDeadline\": {\n \"description\": \"BatchSendDeadline is the maximum time a sample will wait in buffer.\",\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 \"capacity\": {\n \"description\": \"Capacity is the number of samples to buffer per shard before we start\\ndropping them.\",\n \"type\": \"integer\"\n },\n \"maxBackoff\": {\n \"description\": \"MaxBackoff is the maximum retry delay.\",\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 \"maxRetries\": {\n \"description\": \"MaxRetries is the maximum number of times to retry a batch on recoverable errors.\",\n \"type\": \"integer\"\n },\n \"maxSamplesPerSend\": {\n \"description\": \"MaxSamplesPerSend is the maximum number of samples per send.\",\n \"type\": \"integer\"\n },\n \"maxShards\": {\n \"description\": \"MaxShards is the maximum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"minBackoff\": {\n \"description\": \"MinBackoff is the initial retry delay. Gets doubled for every retry.\",\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 \"minShards\": {\n \"description\": \"MinShards is the minimum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"retryOnRateLimit\": {\n \"description\": \"Retry upon receiving a 429 status code from the remote-write storage.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"type\": \"boolean\"\n },\n \"sampleAgeLimit\": {\n \"description\": \"SampleAgeLimit drops samples older than the limit.\\nIt requires Prometheus \\u003e= v2.50.0.\",\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 },\n \"type\": \"object\"\n },\n \"remoteTimeout\": {\n \"description\": \"Timeout for requests to the remote write endpoint.\",\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 \"sendExemplars\": {\n \"description\": \"Enables sending of exemplars over remote write. Note that\\nexemplar-storage itself must be enabled using the `spec.enableFeatures`\\noption for exemplars to be scraped in the first place.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"type\": \"boolean\"\n },\n \"sendNativeHistograms\": {\n \"description\": \"Enables sending of native histograms, also known as sparse histograms\\nover remote write.\\n\\nIt requires Prometheus \\u003e= v2.40.0.\",\n \"type\": \"boolean\"\n },\n \"sigv4\": {\n \"description\": \"Sigv4 allows to configures AWS's Signature Verification 4 for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use for the URL.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the endpoint to send samples to.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"writeRelabelConfigs\": {\n \"description\": \"The list of remote write relabel configurations.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"remoteWriteReceiverMessageVersions\": {\n \"description\": \"List of the protobuf message versions to accept when receiving the\\nremote writes.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"items\": {\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"replicaExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the replica name.\\nThe external label will _not_ be added when the field is set to the\\nempty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus_replica\\\"\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Number of replicas of each shard to deploy for a Prometheus deployment.\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\ncreated.\\n\\nDefault: 1\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Defines the resources requests and limits of the 'prometheus' container.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"retention\": {\n \"description\": \"How long to retain the Prometheus data.\\n\\nDefault: \\\"24h\\\" if `spec.retention` and `spec.retentionSize` are empty.\",\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 \"retentionSize\": {\n \"description\": \"Maximum number of bytes used by the Prometheus data.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"routePrefix\": {\n \"description\": \"The route prefix Prometheus registers HTTP handlers for.\\n\\nThis is useful when using `spec.externalURL`, and a proxy is rewriting\\nHTTP routes of a request, and the actual ExternalURL is still true, but\\nthe server serves requests under a different route prefix. For example\\nfor use with `kubectl proxy`.\",\n \"type\": \"string\"\n },\n \"ruleNamespaceSelector\": {\n \"description\": \"Namespaces to match for PrometheusRule discovery. An empty label selector\\nmatches all namespaces. A null label selector matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"ruleQueryOffset\": {\n \"description\": \"Defines the offset the rule evaluation timestamp of this particular group by the specified duration into the past.\\nIt requires Prometheus \\u003e= v2.53.0.\",\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 \"ruleSelector\": {\n \"description\": \"PrometheusRule objects to be selected for rule evaluation. An empty\\nlabel selector matches all objects. A null label selector matches no\\nobjects.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"rules\": {\n \"description\": \"Defines the configuration of the Prometheus rules' engine.\",\n \"properties\": {\n \"alert\": {\n \"description\": \"Defines the parameters of the Prometheus rules' engine.\\n\\nAny update to these parameters trigger a restart of the pods.\",\n \"properties\": {\n \"forGracePeriod\": {\n \"description\": \"Minimum duration between alert and restored 'for' state.\\n\\nThis is maintained only for alerts with a configured 'for' time greater\\nthan the grace period.\",\n \"type\": \"string\"\n },\n \"forOutageTolerance\": {\n \"description\": \"Max time to tolerate prometheus outage for restoring 'for' state of\\nalert.\",\n \"type\": \"string\"\n },\n \"resendDelay\": {\n \"description\": \"Minimum amount of time to wait before resending an alert to\\nAlertmanager.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"runtime\": {\n \"description\": \"RuntimeConfig configures the values for the Prometheus process behavior\",\n \"properties\": {\n \"goGC\": {\n \"description\": \"The Go garbage collection target percentage. Lowering this number may increase the CPU usage.\\nSee: https://tip.golang.org/doc/gc-guide#GOGC\",\n \"format\": \"int32\",\n \"minimum\": -1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClasses\": {\n \"description\": \"List of scrape classes to expose to scraping objects such as\\nPodMonitors, ServiceMonitors, Probes and ScrapeConfigs.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"items\": {\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"AttachMetadata configures additional metadata to the discovered targets.\\nWhen the scrape object defines its own configuration, it takes\\nprecedence over the scrape class configuration.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"authorization\": {\n \"description\": \"Authorization section for the ScrapeClass.\\nIt will only apply if the scrape resource doesn't specify any Authorization.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"default\": {\n \"description\": \"Default indicates that the scrape applies to all scrape objects that\\ndon't configure an explicit scrape class name.\\n\\nOnly one scrape class can be set as the default.\",\n \"type\": \"boolean\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelings configures the relabeling rules to apply to all samples before ingestion.\\n\\nThe Operator adds the scrape class metric relabelings defined here.\\nThen the Operator adds the target-specific metric relabelings defined in ServiceMonitors, PodMonitors, Probes and ScrapeConfigs.\\nThen the Operator adds namespace enforcement relabeling rule, specified in '.spec.enforcedNamespaceLabel'.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the scrape class.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"Relabelings configures the relabeling rules to apply to all scrape targets.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields\\nlike `__meta_kubernetes_namespace` and `__meta_kubernetes_service_name`.\\nThen the Operator adds the scrape class relabelings defined here.\\nThen the Operator adds the target-specific relabelings defined in the scrape object.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLSConfig defines the TLS settings to use for the scrape. When the\\nscrape objects define their own CA, certificate and/or key, they take\\nprecedence over the corresponding scrape class fields.\\n\\nFor now only the `caFile`, `certFile` and `keyFile` fields are supported.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\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 \"scrapeConfigNamespaceSelector\": {\n \"description\": \"Namespaces to match for ScrapeConfig discovery. An empty label selector\\nmatches all namespaces. A null label selector matches the current\\nnamespace only.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeConfigSelector\": {\n \"description\": \"ScrapeConfigs to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeInterval\": {\n \"default\": \"30s\",\n \"description\": \"Interval between consecutive scrapes.\\n\\nDefault: \\\"30s\\\"\",\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 \"scrapeProtocols\": {\n \"description\": \"The protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\\n\\n`PrometheusText1.0.0` requires Prometheus \\u003e= v3.0.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Number of seconds to wait until a scrape request times out.\",\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 \"secrets\": {\n \"description\": \"Secrets is a list of Secrets in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach Secret is added to the StatefulSet definition as a volume named `secret-\\u003csecret-name\\u003e`.\\nThe Secrets are mounted into /etc/prometheus/secrets/\\u003csecret-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nPrometheus Pods.\",\n \"type\": \"string\"\n },\n \"serviceDiscoveryRole\": {\n \"description\": \"Defines the service discovery role used to discover targets from\\n`ServiceMonitor` objects and Alertmanager endpoints.\\n\\nIf set, the value should be either \\\"Endpoints\\\" or \\\"EndpointSlice\\\".\\nIf unset, the operator assumes the \\\"Endpoints\\\" role.\",\n \"enum\": [\n \"Endpoints\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n },\n \"serviceMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for ServicedMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"serviceMonitorSelector\": {\n \"description\": \"ServiceMonitors to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"sha\": {\n \"description\": \"Deprecated: use 'spec.image' instead. The image's digest can be specified as part of the image name.\",\n \"type\": \"string\"\n },\n \"shards\": {\n \"description\": \"Number of shards to distribute scraped targets onto.\\n\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\nbeing created.\\n\\nWhen not defined, the operator assumes only one shard.\\n\\nNote that scaling down shards will not reshard data onto the remaining\\ninstances, it must be manually moved. Increasing shards will not reshard\\ndata either but it will continue to be available from the same\\ninstances. To query globally, use Thanos sidecar and Thanos querier or\\nremote write data to a central location.\\nAlerting and recording rules\\n\\nBy default, the sharding is performed on:\\n* The `__address__` target's metadata label for PodMonitor,\\nServiceMonitor and ScrapeConfig resources.\\n* The `__param_target__` label for Probe resources.\\n\\nUsers can define their own sharding implementation by setting the\\n`__tmp_hash` label during the target discovery with relabeling\\nconfiguration (either in the monitoring resources or via scrape class).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"storage\": {\n \"description\": \"Storage defines the storage used by Prometheus.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\n },\n \"tag\": {\n \"description\": \"Deprecated: use 'spec.image' instead. The image's tag can be specified as part of the image name.\",\n \"type\": \"string\"\n },\n \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"thanos\": {\n \"description\": \"Defines the configuration of the optional Thanos sidecar.\",\n \"properties\": {\n \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the Thanos container.\\nThe arguments are passed as-is to the Thanos container which may cause issues\\nif they are invalid or not supported the given Thanos version.\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument, the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"baseImage\": {\n \"description\": \"Deprecated: use 'image' instead.\",\n \"type\": \"string\"\n },\n \"blockSize\": {\n \"default\": \"2h\",\n \"description\": \"BlockDuration controls the size of TSDB blocks produced by Prometheus.\\nThe default value is 2h to match the upstream Prometheus defaults.\\n\\nWARNING: Changing the block duration can impact the performance and\\nefficiency of the entire Prometheus/Thanos stack due to how it interacts\\nwith memory and Thanos compactors. It is recommended to keep this value\\nset to a multiple of 120 times your longest scrape or rule interval. For\\nexample, 30s * 120 = 1h.\",\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 \"getConfigInterval\": {\n \"description\": \"How often to retrieve the Prometheus configuration.\",\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 \"getConfigTimeout\": {\n \"description\": \"Maximum time to wait when retrieving the Prometheus configuration.\",\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 \"grpcListenLocal\": {\n \"description\": \"When true, the Thanos sidecar listens on the loopback interface instead\\nof the Pod IP's address for the gRPC endpoints.\\n\\nIt has no effect if `listenLocal` is true.\",\n \"type\": \"boolean\"\n },\n \"grpcServerTlsConfig\": {\n \"description\": \"Configures the TLS parameters for the gRPC server providing the StoreAPI.\\n\\nNote: Currently only the `caFile`, `certFile`, and `keyFile` fields are supported.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"httpListenLocal\": {\n \"description\": \"When true, the Thanos sidecar listens on the loopback interface instead\\nof the Pod IP's address for the HTTP endpoints.\\n\\nIt has no effect if `listenLocal` is true.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Container image name for Thanos. If specified, it takes precedence over\\nthe `spec.thanos.baseImage`, `spec.thanos.tag` and `spec.thanos.sha`\\nfields.\\n\\nSpecifying `spec.thanos.version` is still necessary to ensure the\\nPrometheus Operator knows which version of Thanos is being configured.\\n\\nIf neither `spec.thanos.image` nor `spec.thanos.baseImage` are defined,\\nthe operator will use the latest upstream version of Thanos available at\\nthe time when the operator was released.\",\n \"type\": \"string\"\n },\n \"listenLocal\": {\n \"description\": \"Deprecated: use `grpcListenLocal` and `httpListenLocal` instead.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for the Thanos sidecar.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for the Thanos sidecar.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\n },\n \"minTime\": {\n \"description\": \"Defines the start of time range limit served by the Thanos sidecar's StoreAPI.\\nThe field's value should be a constant time in RFC3339 format or a time\\nduration relative to current time, such as -1d or 2h45m. Valid duration\\nunits are ms, s, m, h, d, w, y.\",\n \"type\": \"string\"\n },\n \"objectStorageConfig\": {\n \"description\": \"Defines the Thanos sidecar's configuration to upload TSDB blocks to object storage.\\n\\nMore info: https://thanos.io/tip/thanos/storage.md/\\n\\nobjectStorageConfigFile takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"objectStorageConfigFile\": {\n \"description\": \"Defines the Thanos sidecar's configuration file to upload TSDB blocks to object storage.\\n\\nMore info: https://thanos.io/tip/thanos/storage.md/\\n\\nThis field takes precedence over objectStorageConfig.\",\n \"type\": \"string\"\n },\n \"readyTimeout\": {\n \"description\": \"ReadyTimeout is the maximum time that the Thanos sidecar will wait for\\nPrometheus to start.\",\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 \"resources\": {\n \"description\": \"Defines the resources requests and limits of the Thanos sidecar.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"sha\": {\n \"description\": \"Deprecated: use 'image' instead. The image digest can be specified as part of the image name.\",\n \"type\": \"string\"\n },\n \"tag\": {\n \"description\": \"Deprecated: use 'image' instead. The image's tag can be specified as as part of the image name.\",\n \"type\": \"string\"\n },\n \"tracingConfig\": {\n \"description\": \"Defines the tracing configuration for the Thanos sidecar.\\n\\n`tracingConfigFile` takes precedence over this field.\\n\\nMore info: https://thanos.io/tip/thanos/tracing.md/\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tracingConfigFile\": {\n \"description\": \"Defines the tracing configuration file for the Thanos sidecar.\\n\\nThis field takes precedence over `tracingConfig`.\\n\\nMore info: https://thanos.io/tip/thanos/tracing.md/\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of Thanos being deployed. The operator uses this information\\nto generate the Prometheus StatefulSet + configuration files.\\n\\nIf not specified, the operator assumes the latest upstream release of\\nThanos available at the time when the version of the operator was\\nreleased.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows configuration of additional VolumeMounts for Thanos.\\nVolumeMounts specified will be appended to other VolumeMounts in the\\n'thanos-sidecar' container.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"type\": \"object\"\n },\n \"tolerations\": {\n \"description\": \"Defines the Pods' tolerations if specified.\",\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\": \"Defines the pod's topology spread constraints if specified.\",\n \"items\": {\n \"properties\": {\n \"additionalLabelSelectors\": {\n \"description\": \"Defines what Prometheus Operator managed labels should be added to labelSelector on the topologySpreadConstraint.\",\n \"enum\": [\n \"OnResource\",\n \"OnShard\"\n ],\n \"type\": \"string\"\n },\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\\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\\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\\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\\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 \"tracingConfig\": {\n \"description\": \"TracingConfig configures tracing in Prometheus.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"properties\": {\n \"clientType\": {\n \"description\": \"Client used to export the traces. Supported values are `http` or `grpc`.\",\n \"enum\": [\n \"http\",\n \"grpc\"\n ],\n \"type\": \"string\"\n },\n \"compression\": {\n \"description\": \"Compression key for supported compression types. The only supported value is `gzip`.\",\n \"enum\": [\n \"gzip\"\n ],\n \"type\": \"string\"\n },\n \"endpoint\": {\n \"description\": \"Endpoint to send the traces to. Should be provided in format \\u003chost\\u003e:\\u003cport\\u003e.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs to be used as headers associated with gRPC or HTTP requests.\",\n \"type\": \"object\"\n },\n \"insecure\": {\n \"description\": \"If disabled, the client will use a secure connection.\",\n \"type\": \"boolean\"\n },\n \"samplingFraction\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Sets the probability a given trace will be sampled. Must be a float from 0 through 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 \"timeout\": {\n \"description\": \"Maximum time the exporter will wait for each batch export.\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use when sending traces.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"endpoint\"\n ],\n \"type\": \"object\"\n },\n \"tsdb\": {\n \"description\": \"Defines the runtime reloadable configuration of the timeseries database(TSDB).\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\n \"properties\": {\n \"outOfOrderTimeWindow\": {\n \"description\": \"Configures how old an out-of-order/out-of-bounds sample can be with\\nrespect to the TSDB max time.\\n\\nAn out-of-order/out-of-bounds sample is ingested into the TSDB as long as\\nthe timestamp of the sample is \\u003e= (TSDB.MaxTime - outOfOrderTimeWindow).\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\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 },\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"Version of Prometheus being deployed. The operator uses this information\\nto generate the Prometheus StatefulSet + configuration files.\\n\\nIf not specified, the operator assumes the latest upstream version of\\nPrometheus available at the time when the version of the operator was\\nreleased.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows the configuration of additional VolumeMounts.\\n\\nVolumeMounts will be appended to other VolumeMounts in the 'prometheus'\\ncontainer, that are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows the configuration of additional volumes on the output\\nStatefulSet definition. Volumes specified will be appended to other\\nvolumes that are generated as a result of StorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"walCompression\": {\n \"description\": \"Configures compression of the write-ahead log (WAL) using Snappy.\\n\\nWAL compression is enabled by default for Prometheus \\u003e= 2.20.0\\n\\nRequires Prometheus v2.11.0 and above.\",\n \"type\": \"boolean\"\n },\n \"web\": {\n \"description\": \"Defines the configuration of the Prometheus web server.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"maxConnections\": {\n \"description\": \"Defines the maximum number of simultaneous connections\\nA zero value means that Prometheus doesn't accept any incoming connection.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"pageTitle\": {\n \"description\": \"The prometheus web page title.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Prometheus\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Prometheus", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PrometheusAgent.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PrometheusAgent.json new file mode 100644 index 00000000000..305c0fc36d7 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PrometheusAgent.json @@ -0,0 +1,196 @@ +{ + "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": "PrometheusAgent", + "schema": "{\n \"description\": \"The `PrometheusAgent` custom resource definition (CRD) defines a desired [Prometheus Agent](https://prometheus.io/blog/2021/11/16/agent/) setup to run in a Kubernetes cluster.\\n\\nThe CRD is very similar to the `Prometheus` CRD except for features which aren't available in agent mode like rule evaluation, persistent storage and Thanos sidecar.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the Prometheus agent. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the 'prometheus' container.\\n\\nIt is intended for e.g. activating hidden flags which are not supported by\\nthe dedicated configuration options yet. The arguments are passed as-is to the\\nPrometheus container which may cause issues if they are invalid or not supported\\nby the given Prometheus version.\\n\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument, the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"additionalScrapeConfigs\": {\n \"description\": \"AdditionalScrapeConfigs allows specifying a key of a Secret containing\\nadditional Prometheus scrape configurations. Scrape configurations\\nspecified are appended to the configurations generated by the Prometheus\\nOperator. Job configurations specified must have the form as specified\\nin the official Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.\\nAs scrape configs are appended, the user is responsible to make sure it\\nis valid. Note that using this feature may expose the possibility to\\nbreak upgrades of Prometheus. It is advised to review Prometheus release\\nnotes to ensure that no incompatible scrape configs are going to break\\nPrometheus after the upgrade.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\": \"Defines the Pods' affinity scheduling rules if specified.\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"apiserverConfig\": {\n \"description\": \"APIServerConfig allows specifying a host and auth methods to access the\\nKuberntees API server.\\nIf null, Prometheus is assumed to run inside of the cluster: it will\\ndiscover the API servers automatically and use the Pod's CA certificate\\nand bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the API server.\\n\\nCannot be set at the same time as `basicAuth`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the API server.\\n\\nCannot be set at the same time as `authorization`, `bearerToken`, or\\n`bearerTokenFile`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for accessing apiserver.\\n\\nCannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"host\": {\n \"description\": \"Kubernetes API address consisting of a hostname or IP address followed\\nby an optional port number.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS Config to use for the API server.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\"\n ],\n \"type\": \"object\"\n },\n \"arbitraryFSAccessThroughSMs\": {\n \"description\": \"When true, ServiceMonitor, PodMonitor and Probe object are forbidden to\\nreference arbitrary files on the file system of the 'prometheus'\\ncontainer.\\nWhen a ServiceMonitor's endpoint specifies a `bearerTokenFile` value\\n(e.g. '/var/run/secrets/kubernetes.io/serviceaccount/token'), a\\nmalicious target can get access to the Prometheus service account's\\ntoken in the Prometheus' scrape request. Setting\\n`spec.arbitraryFSAccessThroughSM` to 'true' would prevent the attack.\\nUsers should instead provide the credentials using the\\n`spec.bearerTokenSecret` field.\",\n \"properties\": {\n \"deny\": {\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"automountServiceAccountToken\": {\n \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod.\\nIf the field isn't set, the operator mounts the service account token by default.\\n\\n**Warning:** be aware that by default, Prometheus requires the service account token for Kubernetes service discovery.\\nIt is possible to use strategic merge patch to project the service account token into the 'prometheus' container.\",\n \"type\": \"boolean\"\n },\n \"bodySizeLimit\": {\n \"description\": \"BodySizeLimit defines per-scrape on response body size.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"configMaps\": {\n \"description\": \"ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach ConfigMap is added to the StatefulSet definition as a volume named `configmap-\\u003cconfigmap-name\\u003e`.\\nThe ConfigMaps are mounted into /etc/prometheus/configmaps/\\u003cconfigmap-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers or modifying operator\\ngenerated containers. This can be used to allow adding an authentication\\nproxy to the Pods or to change the behavior of an operator generated\\ncontainer. Containers described here modify an operator generated\\ncontainer if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of containers managed by the operator are:\\n* `prometheus`\\n* `config-reloader`\\n* `thanos-sidecar`\\n\\nOverriding containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enableFeatures\": {\n \"description\": \"Enable access to Prometheus feature flags. By default, no features are enabled.\\n\\nEnabling features which are disabled by default is entirely outside the\\nscope of what the maintainers will support and by doing so, you accept\\nthat this behaviour may break at any time without notice.\\n\\nFor more information see https://prometheus.io/docs/prometheus/latest/feature_flags/\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"enableOTLPReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the OTLP Metrics protocol.\\n\\nNote that the OTLP receiver endpoint is automatically enabled if `.spec.otlpConfig` is defined.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"type\": \"boolean\"\n },\n \"enableRemoteWriteReceiver\": {\n \"description\": \"Enable Prometheus to be used as a receiver for the Prometheus remote\\nwrite protocol.\\n\\nWARNING: This is not considered an efficient way of ingesting samples.\\nUse it with caution for specific low-volume use cases.\\nIt is not suitable for replacing the ingestion via scraping and turning\\nPrometheus into a push-based metrics collection system.\\nFor more information see https://prometheus.io/docs/prometheus/latest/querying/api/#remote-write-receiver\\n\\nIt requires Prometheus \\u003e= v2.33.0.\",\n \"type\": \"boolean\"\n },\n \"enforcedBodySizeLimit\": {\n \"description\": \"When defined, enforcedBodySizeLimit specifies a global limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\nTargets responding with a body larger than this many bytes will cause\\nthe scrape to fail.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\\n\\nWhen both `enforcedBodySizeLimit` and `bodySizeLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined bodySizeLimit value will inherit the global bodySizeLimit value (Prometheus \\u003e= 2.45.0) or the enforcedBodySizeLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedBodySizeLimit` is greater than the `bodySizeLimit`, the `bodySizeLimit` will be set to `enforcedBodySizeLimit`.\\n* Scrape objects with a bodySizeLimit value less than or equal to enforcedBodySizeLimit keep their specific value.\\n* Scrape objects with a bodySizeLimit value greater than enforcedBodySizeLimit are set to enforcedBodySizeLimit.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"enforcedKeepDroppedTargets\": {\n \"description\": \"When defined, enforcedKeepDroppedTargets specifies a global limit on the number of targets\\ndropped by relabeling that will be kept in memory. The value overrides\\nany `spec.keepDroppedTargets` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.keepDroppedTargets` is\\ngreater than zero and less than `spec.enforcedKeepDroppedTargets`.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nWhen both `enforcedKeepDroppedTargets` and `keepDroppedTargets` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined keepDroppedTargets value will inherit the global keepDroppedTargets value (Prometheus \\u003e= 2.45.0) or the enforcedKeepDroppedTargets value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedKeepDroppedTargets` is greater than the `keepDroppedTargets`, the `keepDroppedTargets` will be set to `enforcedKeepDroppedTargets`.\\n* Scrape objects with a keepDroppedTargets value less than or equal to enforcedKeepDroppedTargets keep their specific value.\\n* Scrape objects with a keepDroppedTargets value greater than enforcedKeepDroppedTargets are set to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelLimit\": {\n \"description\": \"When defined, enforcedLabelLimit specifies a global limit on the number\\nof labels per sample. The value overrides any `spec.labelLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelLimit` is\\ngreater than zero and less than `spec.enforcedLabelLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelLimit` and `labelLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelLimit value will inherit the global labelLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelLimit` is greater than the `labelLimit`, the `labelLimit` will be set to `enforcedLabelLimit`.\\n* Scrape objects with a labelLimit value less than or equal to enforcedLabelLimit keep their specific value.\\n* Scrape objects with a labelLimit value greater than enforcedLabelLimit are set to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelNameLengthLimit\": {\n \"description\": \"When defined, enforcedLabelNameLengthLimit specifies a global limit on the length\\nof labels name per sample. The value overrides any `spec.labelNameLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelNameLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelNameLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelNameLengthLimit` and `labelNameLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelNameLengthLimit value will inherit the global labelNameLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelNameLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelNameLengthLimit` is greater than the `labelNameLengthLimit`, the `labelNameLengthLimit` will be set to `enforcedLabelNameLengthLimit`.\\n* Scrape objects with a labelNameLengthLimit value less than or equal to enforcedLabelNameLengthLimit keep their specific value.\\n* Scrape objects with a labelNameLengthLimit value greater than enforcedLabelNameLengthLimit are set to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedLabelValueLengthLimit\": {\n \"description\": \"When not null, enforcedLabelValueLengthLimit defines a global limit on the length\\nof labels value per sample. The value overrides any `spec.labelValueLengthLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.labelValueLengthLimit` is\\ngreater than zero and less than `spec.enforcedLabelValueLengthLimit`.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nWhen both `enforcedLabelValueLengthLimit` and `labelValueLengthLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined labelValueLengthLimit value will inherit the global labelValueLengthLimit value (Prometheus \\u003e= 2.45.0) or the enforcedLabelValueLengthLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedLabelValueLengthLimit` is greater than the `labelValueLengthLimit`, the `labelValueLengthLimit` will be set to `enforcedLabelValueLengthLimit`.\\n* Scrape objects with a labelValueLengthLimit value less than or equal to enforcedLabelValueLengthLimit keep their specific value.\\n* Scrape objects with a labelValueLengthLimit value greater than enforcedLabelValueLengthLimit are set to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedNamespaceLabel\": {\n \"description\": \"When not empty, a label will be added to:\\n\\n1. All metrics scraped from `ServiceMonitor`, `PodMonitor`, `Probe` and `ScrapeConfig` objects.\\n2. All metrics generated from recording rules defined in `PrometheusRule` objects.\\n3. All alerts generated from alerting rules defined in `PrometheusRule` objects.\\n4. All vector selectors of PromQL expressions defined in `PrometheusRule` objects.\\n\\nThe label will not added for objects referenced in `spec.excludedFromEnforcement`.\\n\\nThe label's name is this field's value.\\nThe label's value is the namespace of the `ServiceMonitor`,\\n`PodMonitor`, `Probe`, `PrometheusRule` or `ScrapeConfig` object.\",\n \"type\": \"string\"\n },\n \"enforcedSampleLimit\": {\n \"description\": \"When defined, enforcedSampleLimit specifies a global limit on the number\\nof scraped samples that will be accepted. This overrides any\\n`spec.sampleLimit` set by ServiceMonitor, PodMonitor, Probe objects\\nunless `spec.sampleLimit` is greater than zero and less than\\n`spec.enforcedSampleLimit`.\\n\\nIt is meant to be used by admins to keep the overall number of\\nsamples/series under a desired limit.\\n\\nWhen both `enforcedSampleLimit` and `sampleLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined sampleLimit value will inherit the global sampleLimit value (Prometheus \\u003e= 2.45.0) or the enforcedSampleLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedSampleLimit` is greater than the `sampleLimit`, the `sampleLimit` will be set to `enforcedSampleLimit`.\\n* Scrape objects with a sampleLimit value less than or equal to enforcedSampleLimit keep their specific value.\\n* Scrape objects with a sampleLimit value greater than enforcedSampleLimit are set to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"enforcedTargetLimit\": {\n \"description\": \"When defined, enforcedTargetLimit specifies a global limit on the number\\nof scraped targets. The value overrides any `spec.targetLimit` set by\\nServiceMonitor, PodMonitor, Probe objects unless `spec.targetLimit` is\\ngreater than zero and less than `spec.enforcedTargetLimit`.\\n\\nIt is meant to be used by admins to to keep the overall number of\\ntargets under a desired limit.\\n\\nWhen both `enforcedTargetLimit` and `targetLimit` are defined and greater than zero, the following rules apply:\\n* Scrape objects without a defined targetLimit value will inherit the global targetLimit value (Prometheus \\u003e= 2.45.0) or the enforcedTargetLimit value (Prometheus \\u003c v2.45.0).\\n If Prometheus version is \\u003e= 2.45.0 and the `enforcedTargetLimit` is greater than the `targetLimit`, the `targetLimit` will be set to `enforcedTargetLimit`.\\n* Scrape objects with a targetLimit value less than or equal to enforcedTargetLimit keep their specific value.\\n* Scrape objects with a targetLimit value greater than enforcedTargetLimit are set to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"excludedFromEnforcement\": {\n \"description\": \"List of references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects\\nto be excluded from enforcing a namespace label of origin.\\n\\nIt is only applicable if `spec.enforcedNamespaceLabel` set to true.\",\n \"items\": {\n \"description\": \"ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object.\",\n \"properties\": {\n \"group\": {\n \"default\": \"monitoring.coreos.com\",\n \"description\": \"Group of the referent. When not specified, it defaults to `monitoring.coreos.com`\",\n \"enum\": [\n \"monitoring.coreos.com\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. When not set, all resources in the namespace are matched.\",\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 \"minLength\": 1,\n \"type\": \"string\"\n },\n \"resource\": {\n \"description\": \"Resource of the referent.\",\n \"enum\": [\n \"prometheusrules\",\n \"servicemonitors\",\n \"podmonitors\",\n \"probes\",\n \"scrapeconfigs\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"externalLabels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The labels to add to any time series or alerts when communicating with\\nexternal systems (federation, remote storage, Alertmanager).\\nLabels defined by `spec.replicaExternalLabelName` and\\n`spec.prometheusExternalLabelName` take precedence over this list.\",\n \"type\": \"object\"\n },\n \"externalUrl\": {\n \"description\": \"The external URL under which the Prometheus service is externally\\navailable. This is necessary to generate correct URLs (for instance if\\nPrometheus is accessible behind an Ingress resource).\",\n \"type\": \"string\"\n },\n \"hostAliases\": {\n \"description\": \"Optional list of hosts and IPs that will be injected into the Pod's\\nhosts file 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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"hostNetwork\": {\n \"description\": \"Use the host's network namespace if true.\\n\\nMake sure to understand the security implications if you want to enable\\nit (https://kubernetes.io/docs/concepts/configuration/overview/).\\n\\nWhen hostNetwork is enabled, this will set the DNS policy to\\n`ClusterFirstWithHostNet` automatically (unless `.spec.DNSPolicy` is set\\nto a different value).\",\n \"type\": \"boolean\"\n },\n \"ignoreNamespaceSelectors\": {\n \"description\": \"When true, `spec.namespaceSelector` from all PodMonitor, ServiceMonitor\\nand Probe objects will be ignored. They will only discover targets\\nwithin the namespace of the PodMonitor, ServiceMonitor and Probe\\nobject.\",\n \"type\": \"boolean\"\n },\n \"image\": {\n \"description\": \"Container image name for Prometheus. If specified, it takes precedence\\nover the `spec.baseImage`, `spec.tag` and `spec.sha` fields.\\n\\nSpecifying `spec.version` is still necessary to ensure the Prometheus\\nOperator knows which version of Prometheus is being configured.\\n\\nIf neither `spec.image` nor `spec.baseImage` are defined, the operator\\nwill use the latest upstream version of Prometheus available at the time\\nwhen the operator was released.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'prometheus', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to Secrets in the same namespace\\nto use for pulling images from registries.\\nSee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows injecting initContainers to the Pod definition. Those\\ncan be used to e.g. fetch secrets for injection into the Prometheus\\nconfiguration from external sources. Any errors during the execution of\\nan initContainer will lead to a restart of the Pod. More info:\\nhttps://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nInitContainers described here modify an operator generated init\\ncontainers if they share the same name and modifications are done via a\\nstrategic merge patch.\\n\\nThe names of init container name managed by the operator are:\\n* `init-config-reloader`.\\n\\nOverriding init containers is entirely outside the scope of what the\\nmaintainers will support and by doing so, you accept that this behaviour\\nmay break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedKeepDroppedTargets.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelNameLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedLabelValueLengthLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"listenLocal\": {\n \"description\": \"When true, the Prometheus server listens on the loopback address\\ninstead of the Pod IP's address.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for Prometheus and the config-reloader sidecar.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\n },\n \"maximumStartupDurationSeconds\": {\n \"description\": \"Defines the maximum time that the `prometheus` container's startup probe will wait before being considered failed. The startup probe will return success after the WAL replay is complete.\\nIf set, the value should be greater than 60 (seconds). Otherwise it will be equal to 600 seconds (15 minutes).\",\n \"format\": \"int32\",\n \"minimum\": 60,\n \"type\": \"integer\"\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\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires\\nenabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"mode\": {\n \"description\": \"Mode defines how the Prometheus operator deploys the PrometheusAgent pod(s).\\nFor now this field has no effect.\\n\\n(Alpha) Using this field requires the `PrometheusAgentDaemonSet` feature gate to be enabled.\",\n \"enum\": [\n \"StatefulSet\",\n \"DaemonSet\"\n ],\n \"type\": \"string\"\n },\n \"nameValidationScheme\": {\n \"description\": \"Specifies the validation scheme for metric and label names.\",\n \"enum\": [\n \"UTF8\",\n \"Legacy\"\n ],\n \"type\": \"string\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Defines on which Nodes the Pods are scheduled.\",\n \"type\": \"object\"\n },\n \"otlp\": {\n \"description\": \"Settings related to the OTLP receiver feature.\\nIt requires Prometheus \\u003e= v2.55.0.\",\n \"properties\": {\n \"promoteResourceAttributes\": {\n \"description\": \"List of OpenTelemetry Attributes that should be promoted to metric labels, defaults to none.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"translationStrategy\": {\n \"description\": \"Configures how the OTLP receiver endpoint translates the incoming metrics.\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"NoUTF8EscapingWithSuffixes\",\n \"UnderscoreEscapingWithSuffixes\"\n ],\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"overrideHonorLabels\": {\n \"description\": \"When true, Prometheus resolves label conflicts by renaming the labels in the scraped data\\n to “exported_” for all targets created from ServiceMonitor, PodMonitor and\\nScrapeConfig objects. Otherwise the HonorLabels field of the service or pod monitor applies.\\nIn practice,`overrideHonorLaels:true` enforces `honorLabels:false`\\nfor all ServiceMonitor, PodMonitor and ScrapeConfig objects.\",\n \"type\": \"boolean\"\n },\n \"overrideHonorTimestamps\": {\n \"description\": \"When true, Prometheus ignores the timestamps for all the targets created\\nfrom service and pod monitors.\\nOtherwise the HonorTimestamps field of the service or pod monitor applies.\",\n \"type\": \"boolean\"\n },\n \"paused\": {\n \"description\": \"When a Prometheus deployment is paused, no actions except for deletion\\nwill be performed on the underlying objects.\",\n \"type\": \"boolean\"\n },\n \"persistentVolumeClaimRetentionPolicy\": {\n \"description\": \"The field controls if and how PVCs are deleted during the lifecycle of a StatefulSet.\\nThe default behavior is all PVCs are retained.\\nThis is an alpha field from kubernetes 1.23 until 1.26 and a beta field from 1.26.\\nIt requires enabling the StatefulSetAutoDeletePVC feature gate.\",\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 \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the Prometheus pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"prometheus\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the Prometheus object.\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"prometheus\\\".\\n* \\\"app.kubernetes.io/version\\\" label, set to the Prometheus version.\\n* \\\"operator.prometheus.io/name\\\" label, set to the name of the Prometheus object.\\n* \\\"operator.prometheus.io/shard\\\" label, set to the shard number of the Prometheus object.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"prometheus\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"podMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for PodMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podMonitorSelector\": {\n \"description\": \"PodMonitors to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"podTargetLabels\": {\n \"description\": \"PodTargetLabels are appended to the `spec.podTargetLabels` field of all\\nPodMonitor and ServiceMonitor objects.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefault: \\\"web\\\"\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods.\",\n \"type\": \"string\"\n },\n \"probeNamespaceSelector\": {\n \"description\": \"Namespaces to match for Probe discovery. An empty label\\nselector matches all namespaces. A null label selector matches the\\ncurrent namespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"probeSelector\": {\n \"description\": \"Probes to be selected for target discovery. An empty label selector\\nmatches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"prometheusExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the Prometheus instance\\nname. The external label will _not_ be added when the field is set to\\nthe empty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus\\\"\",\n \"type\": \"string\"\n },\n \"reloadStrategy\": {\n \"description\": \"Defines the strategy used to reload the Prometheus configuration.\\nIf not specified, the configuration is reloaded using the /-/reload HTTP endpoint.\",\n \"enum\": [\n \"HTTP\",\n \"ProcessSignal\"\n ],\n \"type\": \"string\"\n },\n \"remoteWrite\": {\n \"description\": \"Defines the list of remote write configurations.\",\n \"items\": {\n \"description\": \"RemoteWriteSpec defines the configuration to write samples from Prometheus\\nto a remote endpoint.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization section for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `sigv4`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"azureAd\": {\n \"description\": \"AzureAD for the URL.\\n\\nIt requires Prometheus \\u003e= v2.45.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `sigv4`.\",\n \"properties\": {\n \"cloud\": {\n \"description\": \"The Azure Cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.\",\n \"enum\": [\n \"AzureChina\",\n \"AzureGovernment\",\n \"AzurePublic\"\n ],\n \"type\": \"string\"\n },\n \"managedIdentity\": {\n \"description\": \"ManagedIdentity defines the Azure User-assigned Managed identity.\\nCannot be set at the same time as `oauth` or `sdk`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"The client id\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\"\n ],\n \"type\": \"object\"\n },\n \"oauth\": {\n \"description\": \"OAuth defines the oauth config that is being used to authenticate.\\nCannot be set at the same time as `managedIdentity` or `sdk`.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientID` is the clientId of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the client secret of the Azure Active Directory application that is being used to authenticate.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate.\",\n \"minLength\": 1,\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tenantId\"\n ],\n \"type\": \"object\"\n },\n \"sdk\": {\n \"description\": \"SDK defines the Azure SDK config that is being used to authenticate.\\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\\nCannot be set at the same time as `oauth` or `managedIdentity`.\\n\\nIt requires Prometheus \\u003e= 2.52.0.\",\n \"properties\": {\n \"tenantId\": {\n \"description\": \"`tenantId` is the tenant ID of the azure active directory application that is being used to authenticate.\",\n \"pattern\": \"^[0-9a-zA-Z-.]+$\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth configuration for the URL.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerToken\": {\n \"description\": \"*Warning: this field shouldn't be used because the token value appears\\nin clear-text. Prefer using `authorization`.*\\n\\nDeprecated: this will be removed in a future release.\",\n \"type\": \"string\"\n },\n \"bearerTokenFile\": {\n \"description\": \"File from which to read bearer token for the URL.\\n\\nDeprecated: this will be removed in a future release. Prefer using `authorization`.\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\",\n \"type\": \"boolean\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Custom HTTP headers to be sent along with each remote write request.\\nBe aware that headers that are set by Prometheus itself can't be overwritten.\\n\\nIt requires Prometheus \\u003e= v2.25.0.\",\n \"type\": \"object\"\n },\n \"messageVersion\": {\n \"description\": \"The Remote Write message's version to use when writing to the endpoint.\\n\\n`Version1.0` corresponds to the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0.\\n`Version2.0` corresponds to the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0.\\n\\nWhen `Version2.0` is selected, Prometheus will automatically be\\nconfigured to append the metadata of scraped metrics to the WAL.\\n\\nBefore setting this field, consult with your remote storage provider\\nwhat message version it supports.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"metadataConfig\": {\n \"description\": \"MetadataConfig configures the sending of series metadata to the remote storage.\",\n \"properties\": {\n \"send\": {\n \"description\": \"Defines whether metric metadata is sent to the remote storage or not.\",\n \"type\": \"boolean\"\n },\n \"sendInterval\": {\n \"description\": \"Defines how frequently metric metadata is sent to the remote storage.\",\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 },\n \"type\": \"object\"\n },\n \"name\": {\n \"description\": \"The name of the remote write queue, it must be unique if specified. The\\nname is used in metrics and logging in order to differentiate queues.\\n\\nIt requires Prometheus \\u003e= v2.15.0.\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration for the URL.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\\n\\nCannot be set at the same time as `sigv4`, `authorization`, `basicAuth`, or `azureAd`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"queueConfig\": {\n \"description\": \"QueueConfig allows tuning of the remote write queue parameters.\",\n \"properties\": {\n \"batchSendDeadline\": {\n \"description\": \"BatchSendDeadline is the maximum time a sample will wait in buffer.\",\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 \"capacity\": {\n \"description\": \"Capacity is the number of samples to buffer per shard before we start\\ndropping them.\",\n \"type\": \"integer\"\n },\n \"maxBackoff\": {\n \"description\": \"MaxBackoff is the maximum retry delay.\",\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 \"maxRetries\": {\n \"description\": \"MaxRetries is the maximum number of times to retry a batch on recoverable errors.\",\n \"type\": \"integer\"\n },\n \"maxSamplesPerSend\": {\n \"description\": \"MaxSamplesPerSend is the maximum number of samples per send.\",\n \"type\": \"integer\"\n },\n \"maxShards\": {\n \"description\": \"MaxShards is the maximum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"minBackoff\": {\n \"description\": \"MinBackoff is the initial retry delay. Gets doubled for every retry.\",\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 \"minShards\": {\n \"description\": \"MinShards is the minimum number of shards, i.e. amount of concurrency.\",\n \"type\": \"integer\"\n },\n \"retryOnRateLimit\": {\n \"description\": \"Retry upon receiving a 429 status code from the remote-write storage.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"type\": \"boolean\"\n },\n \"sampleAgeLimit\": {\n \"description\": \"SampleAgeLimit drops samples older than the limit.\\nIt requires Prometheus \\u003e= v2.50.0.\",\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 },\n \"type\": \"object\"\n },\n \"remoteTimeout\": {\n \"description\": \"Timeout for requests to the remote write endpoint.\",\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 \"sendExemplars\": {\n \"description\": \"Enables sending of exemplars over remote write. Note that\\nexemplar-storage itself must be enabled using the `spec.enableFeatures`\\noption for exemplars to be scraped in the first place.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"type\": \"boolean\"\n },\n \"sendNativeHistograms\": {\n \"description\": \"Enables sending of native histograms, also known as sparse histograms\\nover remote write.\\n\\nIt requires Prometheus \\u003e= v2.40.0.\",\n \"type\": \"boolean\"\n },\n \"sigv4\": {\n \"description\": \"Sigv4 allows to configures AWS's Signature Verification 4 for the URL.\\n\\nIt requires Prometheus \\u003e= v2.26.0.\\n\\nCannot be set at the same time as `authorization`, `basicAuth`, `oauth2`, or `azureAd`.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API key. If not specified, the environment variable\\n`AWS_ACCESS_KEY_ID` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"profile\": {\n \"description\": \"Profile is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"region\": {\n \"description\": \"Region is the AWS region. If blank, the region from the default credentials chain used.\",\n \"type\": \"string\"\n },\n \"roleArn\": {\n \"description\": \"RoleArn is the named AWS profile used to authenticate.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret. If not specified, the environment\\nvariable `AWS_SECRET_ACCESS_KEY` is used.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use for the URL.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the endpoint to send samples to.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"writeRelabelConfigs\": {\n \"description\": \"The list of remote write relabel configurations.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"remoteWriteReceiverMessageVersions\": {\n \"description\": \"List of the protobuf message versions to accept when receiving the\\nremote writes.\\n\\nIt requires Prometheus \\u003e= v2.54.0.\",\n \"items\": {\n \"enum\": [\n \"V1.0\",\n \"V2.0\"\n ],\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"replicaExternalLabelName\": {\n \"description\": \"Name of Prometheus external label used to denote the replica name.\\nThe external label will _not_ be added when the field is set to the\\nempty string (`\\\"\\\"`).\\n\\nDefault: \\\"prometheus_replica\\\"\",\n \"type\": \"string\"\n },\n \"replicas\": {\n \"description\": \"Number of replicas of each shard to deploy for a Prometheus deployment.\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\ncreated.\\n\\nDefault: 1\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Defines the resources requests and limits of the 'prometheus' container.\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"routePrefix\": {\n \"description\": \"The route prefix Prometheus registers HTTP handlers for.\\n\\nThis is useful when using `spec.externalURL`, and a proxy is rewriting\\nHTTP routes of a request, and the actual ExternalURL is still true, but\\nthe server serves requests under a different route prefix. For example\\nfor use with `kubectl proxy`.\",\n \"type\": \"string\"\n },\n \"runtime\": {\n \"description\": \"RuntimeConfig configures the values for the Prometheus process behavior\",\n \"properties\": {\n \"goGC\": {\n \"description\": \"The Go garbage collection target percentage. Lowering this number may increase the CPU usage.\\nSee: https://tip.golang.org/doc/gc-guide#GOGC\",\n \"format\": \"int32\",\n \"minimum\": -1,\n \"type\": \"integer\"\n }\n },\n \"type\": \"object\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedSampleLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClasses\": {\n \"description\": \"List of scrape classes to expose to scraping objects such as\\nPodMonitors, ServiceMonitors, Probes and ScrapeConfigs.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"items\": {\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"AttachMetadata configures additional metadata to the discovered targets.\\nWhen the scrape object defines its own configuration, it takes\\nprecedence over the scrape class configuration.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"authorization\": {\n \"description\": \"Authorization section for the ScrapeClass.\\nIt will only apply if the scrape resource doesn't specify any Authorization.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"credentialsFile\": {\n \"description\": \"File to read a secret from, mutually exclusive with `credentials`.\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"default\": {\n \"description\": \"Default indicates that the scrape applies to all scrape objects that\\ndon't configure an explicit scrape class name.\\n\\nOnly one scrape class can be set as the default.\",\n \"type\": \"boolean\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelings configures the relabeling rules to apply to all samples before ingestion.\\n\\nThe Operator adds the scrape class metric relabelings defined here.\\nThen the Operator adds the target-specific metric relabelings defined in ServiceMonitors, PodMonitors, Probes and ScrapeConfigs.\\nThen the Operator adds namespace enforcement relabeling rule, specified in '.spec.enforcedNamespaceLabel'.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the scrape class.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"Relabelings configures the relabeling rules to apply to all scrape targets.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields\\nlike `__meta_kubernetes_namespace` and `__meta_kubernetes_service_name`.\\nThen the Operator adds the scrape class relabelings defined here.\\nThen the Operator adds the target-specific relabelings defined in the scrape object.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLSConfig defines the TLS settings to use for the scrape. When the\\nscrape objects define their own CA, certificate and/or key, they take\\nprecedence over the corresponding scrape class fields.\\n\\nFor now only the `caFile`, `certFile` and `keyFile` fields are supported.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\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 \"scrapeConfigNamespaceSelector\": {\n \"description\": \"Namespaces to match for ScrapeConfig discovery. An empty label selector\\nmatches all namespaces. A null label selector matches the current\\nnamespace only.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeConfigSelector\": {\n \"description\": \"ScrapeConfigs to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\\n\\nNote that the ScrapeConfig custom resource definition is currently at Alpha level.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"scrapeInterval\": {\n \"default\": \"30s\",\n \"description\": \"Interval between consecutive scrapes.\\n\\nDefault: \\\"30s\\\"\",\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 \"scrapeProtocols\": {\n \"description\": \"The protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\\n\\n`PrometheusText1.0.0` requires Prometheus \\u003e= v3.0.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Number of seconds to wait until a scrape request times out.\",\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 \"secrets\": {\n \"description\": \"Secrets is a list of Secrets in the same namespace as the Prometheus\\nobject, which shall be mounted into the Prometheus Pods.\\nEach Secret is added to the StatefulSet definition as a volume named `secret-\\u003csecret-name\\u003e`.\\nThe Secrets are mounted into /etc/prometheus/secrets/\\u003csecret-name\\u003e in the 'prometheus' container.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nPrometheus Pods.\",\n \"type\": \"string\"\n },\n \"serviceDiscoveryRole\": {\n \"description\": \"Defines the service discovery role used to discover targets from\\n`ServiceMonitor` objects and Alertmanager endpoints.\\n\\nIf set, the value should be either \\\"Endpoints\\\" or \\\"EndpointSlice\\\".\\nIf unset, the operator assumes the \\\"Endpoints\\\" role.\",\n \"enum\": [\n \"Endpoints\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n },\n \"serviceMonitorNamespaceSelector\": {\n \"description\": \"Namespaces to match for ServicedMonitors discovery. An empty label selector\\nmatches all namespaces. A null label selector (default value) matches the current\\nnamespace only.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"serviceMonitorSelector\": {\n \"description\": \"ServiceMonitors to be selected for target discovery. An empty label\\nselector matches all objects. A null label selector matches no objects.\\n\\nIf `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector`\\nand `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged.\\nThe Prometheus operator will ensure that the Prometheus configuration's\\nSecret exists, but it is the responsibility of the user to provide the raw\\ngzipped Prometheus configuration under the `prometheus.yaml.gz` key.\\nThis behavior is *deprecated* and will be removed in the next major version\\nof the custom resource definition. It is recommended to use\\n`spec.additionalScrapeConfigs` instead.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"shards\": {\n \"description\": \"Number of shards to distribute scraped targets onto.\\n\\n`spec.replicas` multiplied by `spec.shards` is the total number of Pods\\nbeing created.\\n\\nWhen not defined, the operator assumes only one shard.\\n\\nNote that scaling down shards will not reshard data onto the remaining\\ninstances, it must be manually moved. Increasing shards will not reshard\\ndata either but it will continue to be available from the same\\ninstances. To query globally, use Thanos sidecar and Thanos querier or\\nremote write data to a central location.\\nAlerting and recording rules\\n\\nBy default, the sharding is performed on:\\n* The `__address__` target's metadata label for PodMonitor,\\nServiceMonitor and ScrapeConfig resources.\\n* The `__param_target__` label for Probe resources.\\n\\nUsers can define their own sharding implementation by setting the\\n`__tmp_hash` label during the target discovery with relabeling\\nconfiguration (either in the monitoring resources or via scrape class).\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"storage\": {\n \"description\": \"Storage defines the storage used by Prometheus.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\n },\n \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\\nOnly valid in Prometheus versions 2.45.0 and newer.\\n\\nNote that the global limit only applies to scrape objects that don't specify an explicit limit value.\\nIf you want to enforce a maximum limit for all scrape objects, refer to enforcedTargetLimit.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tolerations\": {\n \"description\": \"Defines the Pods' tolerations if specified.\",\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\": \"Defines the pod's topology spread constraints if specified.\",\n \"items\": {\n \"properties\": {\n \"additionalLabelSelectors\": {\n \"description\": \"Defines what Prometheus Operator managed labels should be added to labelSelector on the topologySpreadConstraint.\",\n \"enum\": [\n \"OnResource\",\n \"OnShard\"\n ],\n \"type\": \"string\"\n },\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\\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\\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\\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\\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 \"tracingConfig\": {\n \"description\": \"TracingConfig configures tracing in Prometheus.\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\",\n \"properties\": {\n \"clientType\": {\n \"description\": \"Client used to export the traces. Supported values are `http` or `grpc`.\",\n \"enum\": [\n \"http\",\n \"grpc\"\n ],\n \"type\": \"string\"\n },\n \"compression\": {\n \"description\": \"Compression key for supported compression types. The only supported value is `gzip`.\",\n \"enum\": [\n \"gzip\"\n ],\n \"type\": \"string\"\n },\n \"endpoint\": {\n \"description\": \"Endpoint to send the traces to. Should be provided in format \\u003chost\\u003e:\\u003cport\\u003e.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"headers\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs to be used as headers associated with gRPC or HTTP requests.\",\n \"type\": \"object\"\n },\n \"insecure\": {\n \"description\": \"If disabled, the client will use a secure connection.\",\n \"type\": \"boolean\"\n },\n \"samplingFraction\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Sets the probability a given trace will be sampled. Must be a float from 0 through 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 \"timeout\": {\n \"description\": \"Maximum time the exporter will wait for each batch export.\",\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 \"tlsConfig\": {\n \"description\": \"TLS Config to use when sending traces.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"endpoint\"\n ],\n \"type\": \"object\"\n },\n \"tsdb\": {\n \"description\": \"Defines the runtime reloadable configuration of the timeseries database(TSDB).\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\n \"properties\": {\n \"outOfOrderTimeWindow\": {\n \"description\": \"Configures how old an out-of-order/out-of-bounds sample can be with\\nrespect to the TSDB max time.\\n\\nAn out-of-order/out-of-bounds sample is ingested into the TSDB as long as\\nthe timestamp of the sample is \\u003e= (TSDB.MaxTime - outOfOrderTimeWindow).\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nIt requires Prometheus \\u003e= v2.39.0 or PrometheusAgent \\u003e= v2.54.0.\",\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 },\n \"type\": \"object\"\n },\n \"version\": {\n \"description\": \"Version of Prometheus being deployed. The operator uses this information\\nto generate the Prometheus StatefulSet + configuration files.\\n\\nIf not specified, the operator assumes the latest upstream version of\\nPrometheus available at the time when the version of the operator was\\nreleased.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows the configuration of additional VolumeMounts.\\n\\nVolumeMounts will be appended to other VolumeMounts in the 'prometheus'\\ncontainer, that are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows the configuration of additional volumes on the output\\nStatefulSet definition. Volumes specified will be appended to other\\nvolumes that are generated as a result of StorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"walCompression\": {\n \"description\": \"Configures compression of the write-ahead log (WAL) using Snappy.\\n\\nWAL compression is enabled by default for Prometheus \\u003e= 2.20.0\\n\\nRequires Prometheus v2.11.0 and above.\",\n \"type\": \"boolean\"\n },\n \"web\": {\n \"description\": \"Defines the configuration of the Prometheus web server.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"maxConnections\": {\n \"description\": \"Defines the maximum number of simultaneous connections\\nA zero value means that Prometheus doesn't accept any incoming connection.\",\n \"format\": \"int32\",\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"pageTitle\": {\n \"description\": \"The prometheus web page title.\",\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Prometheus Agent\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Prometheus Agent", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PrometheusRule.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PrometheusRule.json new file mode 100644 index 00000000000..6d6949282a4 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/PrometheusRule.json @@ -0,0 +1,196 @@ +{ + "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": "PrometheusRule", + "schema": "{\n \"description\": \"The `PrometheusRule` custom resource definition (CRD) defines [alerting](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) and [recording](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/) rules to be evaluated by `Prometheus` or `ThanosRuler` objects.\\n\\n`Prometheus` and `ThanosRuler` objects select `PrometheusRule` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired alerting rule definitions for Prometheus.\",\n \"properties\": {\n \"groups\": {\n \"description\": \"Content of Prometheus rule file\",\n \"items\": {\n \"description\": \"RuleGroup is a list of sequentially evaluated recording and alerting rules.\",\n \"properties\": {\n \"interval\": {\n \"description\": \"Interval determines how often rules in the group are evaluated.\",\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 \"description\": \"Labels to add or overwrite before storing the result for its rules.\\nThe labels defined at the rule level take precedence.\\n\\nIt requires Prometheus \\u003e= 3.0.0.\\nThe field is ignored for Thanos Ruler.\",\n \"type\": \"object\"\n },\n \"limit\": {\n \"description\": \"Limit the number of alerts an alerting rule and series a recording\\nrule can produce.\\nLimit is supported starting with Prometheus \\u003e= 2.31 and Thanos Ruler \\u003e= 0.24.\",\n \"type\": \"integer\"\n },\n \"name\": {\n \"description\": \"Name of the rule group.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"partial_response_strategy\": {\n \"description\": \"PartialResponseStrategy is only used by ThanosRuler and will\\nbe ignored by Prometheus instances.\\nMore info: https://github.com/thanos-io/thanos/blob/main/docs/components/rule.md#partial-response\",\n \"pattern\": \"^(?i)(abort|warn)?$\",\n \"type\": \"string\"\n },\n \"query_offset\": {\n \"description\": \"Defines the offset the rule evaluation timestamp of this particular group by the specified duration into the past.\\n\\nIt requires Prometheus \\u003e= v2.53.0.\\nIt is not supported for ThanosRuler.\",\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 \"rules\": {\n \"description\": \"List of alerting and recording rules.\",\n \"items\": {\n \"description\": \"Rule describes an alerting or recording rule\\nSee Prometheus documentation: [alerting](https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) or [recording](https://www.prometheus.io/docs/prometheus/latest/configuration/recording_rules/#recording-rules) rule\",\n \"properties\": {\n \"alert\": {\n \"description\": \"Name of the alert. Must be a valid label value.\\nOnly one of `record` and `alert` must be set.\",\n \"type\": \"string\"\n },\n \"annotations\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Annotations to add to each alert.\\nOnly valid for alerting rules.\",\n \"type\": \"object\"\n },\n \"expr\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"PromQL expression to evaluate.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"for\": {\n \"description\": \"Alerts are considered firing once they have been returned for this long.\",\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 \"keep_firing_for\": {\n \"description\": \"KeepFiringFor defines how long an alert will continue firing after the condition that triggered it has cleared.\",\n \"minLength\": 1,\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 \"description\": \"Labels to add or overwrite.\",\n \"type\": \"object\"\n },\n \"record\": {\n \"description\": \"Name of the time series to output to. Must be a valid metric name.\\nOnly one of `record` and `alert` must be set.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"expr\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\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 },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Prometheus Rule\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Prometheus Rule", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ScrapeConfig.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ScrapeConfig.json new file mode 100644 index 00000000000..c8f6cf290c8 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ScrapeConfig.json @@ -0,0 +1,196 @@ +{ + "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": "ScrapeConfig", + "schema": "{\n \"description\": \"ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across\\nmultiple namespaces into the Prometheus configuration.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"ScrapeConfigSpec is a specification of the desired configuration for a scrape configuration.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"azureSDConfigs\": {\n \"description\": \"AzureSDConfigs defines a list of Azure service discovery configurations.\",\n \"items\": {\n \"description\": \"AzureSDConfig allow retrieving scrape targets from Azure VMs.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#azure_sd_config\",\n \"properties\": {\n \"authenticationMethod\": {\n \"description\": \"# The authentication method, either `OAuth` or `ManagedIdentity` or `SDK`.\\nSee https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview\\nSDK authentication method uses environment variables by default.\\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\",\n \"enum\": [\n \"OAuth\",\n \"ManagedIdentity\",\n \"SDK\"\n ],\n \"type\": \"string\"\n },\n \"clientID\": {\n \"description\": \"Optional client ID. Only required with the OAuth authentication method.\",\n \"type\": \"string\"\n },\n \"clientSecret\": {\n \"description\": \"Optional client secret. Only required with the OAuth authentication method.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"environment\": {\n \"description\": \"The Azure environment.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"type\": \"integer\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.\",\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 \"resourceGroup\": {\n \"description\": \"Optional resource group name. Limits discovery to this resource group.\",\n \"type\": \"string\"\n },\n \"subscriptionID\": {\n \"description\": \"The subscription ID. Always required.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tenantID\": {\n \"description\": \"Optional tenant ID. Only required with the OAuth authentication method.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"subscriptionID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"consulSDConfigs\": {\n \"description\": \"ConsulSDConfigs defines a list of Consul service discovery configurations.\",\n \"items\": {\n \"description\": \"ConsulSDConfig defines a Consul service discovery configuration\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#consul_sd_config\",\n \"properties\": {\n \"allowStale\": {\n \"description\": \"Allow stale Consul results (see https://www.consul.io/api/features/consistency.html). Will reduce load on Consul.\\nIf unset, Prometheus uses its default value.\",\n \"type\": \"boolean\"\n },\n \"authorization\": {\n \"description\": \"Optional Authorization header configuration to authenticate against the Consul Server.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional BasicAuth information to authenticate against the Consul Server.\\nMore info: https://prometheus.io/docs/operating/configuration/#endpoints\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"datacenter\": {\n \"description\": \"Consul Datacenter name, if not provided it will use the local Consul Agent Datacenter.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\\nIf unset, Prometheus uses its default value.\",\n \"type\": \"boolean\"\n },\n \"filter\": {\n \"description\": \"Filter expression used to filter the catalog results.\\nSee https://www.consul.io/api-docs/catalog#list-services\\nIt requires Prometheus \\u003e= 3.0.0.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\nIf unset, Prometheus uses its default value.\",\n \"type\": \"boolean\"\n },\n \"namespace\": {\n \"description\": \"Namespaces are only supported in Consul Enterprise.\\n\\nIt requires Prometheus \\u003e= 2.28.0.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"nodeMeta\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Node metadata key/value pairs to filter nodes for a given service.\\nStarting with Consul 1.14, it is recommended to use `filter` with the `NodeMeta` selector instead.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth2.0 configuration.\\nCannot be set at the same time as `basicAuth`, or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"partition\": {\n \"description\": \"Admin Partitions are only supported in Consul Enterprise.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"pathPrefix\": {\n \"description\": \"Prefix for URIs for when consul is behind an API gateway (reverse proxy).\\n\\nIt requires Prometheus \\u003e= 2.45.0.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time after which the provided names are refreshed.\\nOn large setup it might be a good idea to increase this value because the catalog will change all the time.\\nIf unset, Prometheus uses its default value.\",\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 \"scheme\": {\n \"description\": \"HTTP Scheme default \\\"http\\\"\",\n \"enum\": [\n \"HTTP\",\n \"HTTPS\"\n ],\n \"type\": \"string\"\n },\n \"server\": {\n \"description\": \"Consul server address. A valid string consisting of a hostname or IP followed by an optional port number.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"services\": {\n \"description\": \"A list of services for which targets are retrieved. If omitted, all services are scraped.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"tagSeparator\": {\n \"description\": \"The string by which Consul tags are joined into the tag label.\\nIf unset, Prometheus uses its default value.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tags\": {\n \"description\": \"An optional list of tags used to filter nodes for a given service. Services must contain all tags in the list.\\nStarting with Consul 1.14, it is recommended to use `filter` with the `ServiceTags` selector instead.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Consul API.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenRef\": {\n \"description\": \"Consul ACL TokenRef, if not provided it will use the ACL from the local Consul Agent.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"digitalOceanSDConfigs\": {\n \"description\": \"DigitalOceanSDConfigs defines a list of DigitalOcean service discovery configurations.\",\n \"items\": {\n \"description\": \"DigitalOceanSDConfig allow retrieving scrape targets from DigitalOcean's Droplets API.\\nThis service discovery uses the public IPv4 address by default, by that can be changed with relabeling\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#digitalocean_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the DigitalOcean API.\\nCannot be set at the same time as `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the instance list.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dnsSDConfigs\": {\n \"description\": \"DNSSDConfigs defines a list of DNS service discovery configurations.\",\n \"items\": {\n \"description\": \"DNSSDConfig allows specifying a set of DNS domain names which are periodically queried to discover a list of targets.\\nThe DNS servers to be contacted are read from /etc/resolv.conf.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dns_sd_config\",\n \"properties\": {\n \"names\": {\n \"description\": \"A list of DNS domain names to be queried.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"port\": {\n \"description\": \"The port number used if the query type is not SRV\\nIgnored for SRV records\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the time after which the provided names are refreshed.\\nIf not set, Prometheus uses its default value.\",\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 \"type\": {\n \"description\": \"The type of DNS query to perform. One of SRV, A, AAAA, MX or NS.\\nIf not set, Prometheus uses its default value.\\n\\nWhen set to NS, it requires Prometheus \\u003e= v2.49.0.\\nWhen set to MX, it requires Prometheus \\u003e= v2.38.0\",\n \"enum\": [\n \"A\",\n \"AAAA\",\n \"MX\",\n \"NS\",\n \"SRV\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"names\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dockerSDConfigs\": {\n \"description\": \"DockerSDConfigs defines a list of Docker service discovery configurations.\",\n \"items\": {\n \"description\": \"Docker SD configurations allow retrieving scrape targets from Docker Engine hosts.\\nThis SD discovers \\\"containers\\\" and will create a target for each network IP and\\nport the container is configured to expose.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#docker_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the Docker API.\\nCannot be set at the same time as `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"filters\": {\n \"description\": \"Optional filters to limit the discovery process to a subset of the available resources.\",\n \"items\": {\n \"description\": \"Filter name and value pairs to limit the discovery process to a subset of available resources.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Filter.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"Value to filter on.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"name\",\n \"values\"\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"host\": {\n \"description\": \"Address of the docker daemon\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"hostNetworkingHost\": {\n \"description\": \"The host to use if the container is in host networking mode.\",\n \"type\": \"string\"\n },\n \"matchFirstNetwork\": {\n \"description\": \"Configure whether to match the first network if the container has multiple networks defined.\\nIf unset, Prometheus uses true by default.\\nIt requires Prometheus \\u003e= v2.54.1.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Time after which the container is refreshed.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"dockerSwarmSDConfigs\": {\n \"description\": \"DockerswarmSDConfigs defines a list of Dockerswarm service discovery configurations.\",\n \"items\": {\n \"description\": \"DockerSwarmSDConfig configurations allow retrieving scrape targets from Docker Swarm engine.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dockerswarm_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the target HTTP endpoint.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional HTTP basic authentication information.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"filters\": {\n \"description\": \"Optional filters to limit the discovery process to a subset of available\\nresources.\\nThe available filters are listed in the upstream documentation:\\nServices: https://docs.docker.com/engine/api/v1.40/#operation/ServiceList\\nTasks: https://docs.docker.com/engine/api/v1.40/#operation/TaskList\\nNodes: https://docs.docker.com/engine/api/v1.40/#operation/NodeList\",\n \"items\": {\n \"description\": \"Filter name and value pairs to limit the discovery process to a subset of available resources.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Filter.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"Value to filter on.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"name\",\n \"values\"\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"host\": {\n \"description\": \"Address of the Docker daemon\",\n \"pattern\": \"^[a-zA-Z][a-zA-Z0-9+.-]*://.+$\",\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from, when `role` is nodes, and for discovered\\ntasks and services that don't have published ports.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time after which the service discovery data is refreshed.\",\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 \"role\": {\n \"description\": \"Role of the targets to retrieve. Must be `Services`, `Tasks`, or `Nodes`.\",\n \"enum\": [\n \"Services\",\n \"Tasks\",\n \"Nodes\"\n ],\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"host\",\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ec2SDConfigs\": {\n \"description\": \"EC2SDConfigs defines a list of EC2 service discovery configurations.\",\n \"items\": {\n \"description\": \"EC2SDConfig allow retrieving scrape targets from AWS EC2 instances.\\nThe private IP address is used by default, but may be changed to the public IP address with relabeling.\\nThe IAM credentials used must have the ec2:DescribeInstances permission to discover scrape targets\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ec2_sd_config\\n\\nThe EC2 service discovery requires AWS API keys or role ARN for authentication.\\nBasicAuth, Authorization and OAuth2 fields are not present on purpose.\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API 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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\\nIt requires Prometheus \\u003e= v2.41.0\",\n \"type\": \"boolean\"\n },\n \"filters\": {\n \"description\": \"Filters can be used optionally to filter the instance list by other criteria.\\nAvailable filter criteria can be found here:\\nhttps://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html\\nFilter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html\\nIt requires Prometheus \\u003e= v2.3.0\",\n \"items\": {\n \"description\": \"Filter name and value pairs to limit the discovery process to a subset of available resources.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the Filter.\",\n \"type\": \"string\"\n },\n \"values\": {\n \"description\": \"Value to filter on.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"name\",\n \"values\"\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\\nIt requires Prometheus \\u003e= v2.41.0\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.\",\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 \"region\": {\n \"description\": \"The AWS region.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"roleARN\": {\n \"description\": \"AWS Role ARN, an alternative to using AWS API keys.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the AWS EC2 API.\\nIt requires Prometheus \\u003e= v2.41.0\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"enableCompression\": {\n \"description\": \"When false, Prometheus will request uncompressed response from the scraped target.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\\n\\nIf unset, Prometheus uses true by default.\",\n \"type\": \"boolean\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"eurekaSDConfigs\": {\n \"description\": \"EurekaSDConfigs defines a list of Eureka service discovery configurations.\",\n \"items\": {\n \"description\": \"Eureka SD configurations allow retrieving scrape targets using the Eureka REST API.\\nPrometheus will periodically check the REST endpoint and create a target for every app instance.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#eureka_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization` or `basic_auth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the instance list.\",\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 \"server\": {\n \"description\": \"The URL to connect to the Eureka server.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"fileSDConfigs\": {\n \"description\": \"FileSDConfigs defines a list of file service discovery configurations.\",\n \"items\": {\n \"description\": \"FileSDConfig defines a Prometheus file service discovery configuration\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config\",\n \"properties\": {\n \"files\": {\n \"description\": \"List of files to be used for file discovery. Recommendation: use absolute paths. While relative paths work, the\\nprometheus-operator project makes no guarantees about the working directory where the configuration file is\\nstored.\\nFiles must be mounted using Prometheus.ConfigMaps or Prometheus.Secrets.\",\n \"items\": {\n \"description\": \"SDFile represents a file used for service discovery\",\n \"pattern\": \"^[^*]*(\\\\*[^/]*)?\\\\.(json|yml|yaml|JSON|YML|YAML)$\",\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will reload the content of the files.\",\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 },\n \"required\": [\n \"files\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"gceSDConfigs\": {\n \"description\": \"GCESDConfigs defines a list of GCE service discovery configurations.\",\n \"items\": {\n \"description\": \"GCESDConfig configures scrape targets from GCP GCE instances.\\nThe private IP address is used by default, but may be changed to\\nthe public IP address with relabeling.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config\\n\\nThe GCE service discovery will load the Google Cloud credentials\\nfrom the file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable.\\nSee https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform\\n\\nA pre-requisite for using GCESDConfig is that a Secret containing valid\\nGoogle Cloud credentials is mounted into the Prometheus or PrometheusAgent\\npod via the `.spec.secrets` field and that the GOOGLE_APPLICATION_CREDENTIALS\\nenvironment variable is set to /etc/prometheus/secrets/\\u003csecret-name\\u003e/\\u003ccredentials-filename.json\\u003e.\",\n \"properties\": {\n \"filter\": {\n \"description\": \"Filter can be used optionally to filter the instance list by other criteria\\nSyntax of this filter is described in the filter query parameter section:\\nhttps://cloud.google.com/compute/docs/reference/latest/instances/list\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"type\": \"integer\"\n },\n \"project\": {\n \"description\": \"The Google Cloud Project ID\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.\",\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 \"tagSeparator\": {\n \"description\": \"The tag separator is used to separate the tags on concatenation\",\n \"type\": \"string\"\n },\n \"zone\": {\n \"description\": \"The zone of the scrape targets. If you need multiple zones use multiple GCESDConfigs.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"project\",\n \"zone\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"hetznerSDConfigs\": {\n \"description\": \"HetznerSDConfigs defines a list of Hetzner service discovery configurations.\",\n \"items\": {\n \"description\": \"HetznerSDConfig allow retrieving scrape targets from Hetzner Cloud API and Robot API.\\nThis service discovery uses the public IPv4 address by default, but that can be changed with relabeling\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#hetzner_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration, required when role is hcloud.\\nRole robot does not support bearer token authentication.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request, required when role is robot.\\nRole hcloud does not support basic auth.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be used at the same time as `basic_auth` or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time after which the servers are refreshed.\",\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 \"role\": {\n \"description\": \"The Hetzner role of entities that should be discovered.\",\n \"enum\": [\n \"hcloud\",\n \"Hcloud\",\n \"robot\",\n \"Robot\"\n ],\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"honorLabels\": {\n \"description\": \"HonorLabels chooses the metric's labels on collisions with target labels.\",\n \"type\": \"boolean\"\n },\n \"honorTimestamps\": {\n \"description\": \"HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.\",\n \"type\": \"boolean\"\n },\n \"httpSDConfigs\": {\n \"description\": \"HTTPSDConfigs defines a list of HTTP service discovery configurations.\",\n \"items\": {\n \"description\": \"HTTPSDConfig defines a prometheus HTTP service discovery configuration\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#http_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration to authenticate against the target HTTP endpoint.\\nCannot be set at the same time as `oAuth2`, or `basicAuth`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to authenticate against the target HTTP endpoint.\\nMore info: https://prometheus.io/docs/operating/configuration/#endpoints\\nCannot be set at the same time as `authorization`, or `oAuth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration to authenticate against the target HTTP endpoint.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"RefreshInterval configures the refresh interval at which Prometheus will re-query the\\nendpoint to update the target list.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"URL from which the targets are fetched.\",\n \"minLength\": 1,\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ionosSDConfigs\": {\n \"description\": \"IonosSDConfigs defines a list of IONOS service discovery configurations.\",\n \"items\": {\n \"description\": \"IonosSDConfig configurations allow retrieving scrape targets from IONOS resources.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ionos_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization` header configuration, required when using IONOS.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"datacenterID\": {\n \"description\": \"The unique ID of the IONOS data center.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Configure whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether the HTTP requests should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Port to scrape the metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of resources.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the IONOS API.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"authorization\",\n \"datacenterID\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"jobName\": {\n \"description\": \"The value of the `job` label assigned to the scraped metrics by default.\\n\\nThe `job_name` field in the rendered scrape configuration is always controlled by the\\noperator to prevent duplicate job names, which Prometheus does not allow. Instead the\\n`job` label is set by means of relabeling configs.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"kubernetesSDConfigs\": {\n \"description\": \"KubernetesSDConfigs defines a list of Kubernetes service discovery configurations.\",\n \"items\": {\n \"description\": \"KubernetesSDConfig allows retrieving scrape targets from Kubernetes' REST API.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config\",\n \"properties\": {\n \"apiServer\": {\n \"description\": \"The API server address consisting of a hostname or IP address followed\\nby an optional port number.\\nIf left empty, Prometheus is assumed to run inside\\nof the cluster. It will discover API servers automatically and use the pod's\\nCA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"attachMetadata\": {\n \"description\": \"Optional metadata to attach to discovered targets.\\nIt requires Prometheus \\u003e= v2.35.0 when using the `Pod` role and\\nPrometheus \\u003e= v2.37.0 for `Endpoints` and `Endpointslice` roles.\",\n \"properties\": {\n \"node\": {\n \"description\": \"Attaches node metadata to discovered targets.\\nWhen set to true, Prometheus must have the `get` permission on the\\n`Nodes` objects.\\nOnly valid for Pod, Endpoint and Endpointslice roles.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"namespaces\": {\n \"description\": \"Optional namespace discovery. If omitted, Prometheus discovers targets across all namespaces.\",\n \"properties\": {\n \"names\": {\n \"description\": \"List of namespaces where to watch for resources.\\nIf empty and `ownNamespace` isn't true, Prometheus watches for resources in all namespaces.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"ownNamespace\": {\n \"description\": \"Includes the namespace in which the Prometheus pod runs to the list of watched namespaces.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role of the Kubernetes entities that should be discovered.\\nRole `Endpointslice` requires Prometheus \\u003e= v2.21.0\",\n \"enum\": [\n \"Pod\",\n \"Endpoints\",\n \"Ingress\",\n \"Service\",\n \"Node\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n },\n \"selectors\": {\n \"description\": \"Selector to select objects.\\nIt requires Prometheus \\u003e= v2.17.0\",\n \"items\": {\n \"description\": \"K8SSelectorConfig is Kubernetes Selector Config\",\n \"properties\": {\n \"field\": {\n \"description\": \"An optional field selector to limit the service discovery to resources which have fields with specific values.\\ne.g: `metadata.name=foobar`\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"label\": {\n \"description\": \"An optional label selector to limit the service discovery to resources with specific labels and label values.\\ne.g: `node.kubernetes.io/instance-type=master`\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"Role specifies the type of Kubernetes resource to limit the service discovery to.\\nAccepted values are: Node, Pod, Endpoints, EndpointSlice, Service, Ingress.\",\n \"enum\": [\n \"Pod\",\n \"Endpoints\",\n \"Ingress\",\n \"Service\",\n \"Node\",\n \"EndpointSlice\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-map-keys\": [\n \"role\"\n ],\n \"x-kubernetes-list-type\": \"map\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Kubernetes API.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"kumaSDConfigs\": {\n \"description\": \"KumaSDConfigs defines a list of Kuma service discovery configurations.\",\n \"items\": {\n \"description\": \"KumaSDConfig allow retrieving scrape targets from Kuma's control plane.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kuma_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientID\": {\n \"description\": \"Client id is used by Kuma Control Plane to compute Monitoring Assignment for specific Prometheus backend.\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"fetchTimeout\": {\n \"description\": \"The time after which the monitoring assignments are refreshed.\",\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 \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"The time to wait between polling update requests.\",\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 \"server\": {\n \"description\": \"Address of the Kuma Control Plane's MADS xDS server.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\nOnly valid in Prometheus versions 2.27.0 and newer.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"lightSailSDConfigs\": {\n \"description\": \"LightsailSDConfigs defines a list of Lightsail service discovery configurations.\",\n \"items\": {\n \"description\": \"LightSailSDConfig configurations allow retrieving scrape targets from AWS Lightsail instances.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#lightsail_sd_config\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"AccessKey is the AWS API 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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"authorization\": {\n \"description\": \"Optional `authorization` HTTP header configuration.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional HTTP basic authentication information.\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Configure whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"endpoint\": {\n \"description\": \"Custom endpoint to be used.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether the HTTP requests should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth2.0 configuration.\\nCannot be set at the same time as `basicAuth`, or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Port to scrape the metrics from.\\nIf using the public IP address, this must instead be specified in the relabeling rule.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of instances.\",\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 \"region\": {\n \"description\": \"The AWS region.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"roleARN\": {\n \"description\": \"AWS Role ARN, an alternative to using AWS API keys.\",\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"SecretKey is the AWS API secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Puppet DB.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"linodeSDConfigs\": {\n \"description\": \"LinodeSDConfigs defines a list of Linode service discovery configurations.\",\n \"items\": {\n \"description\": \"LinodeSDConfig configurations allow retrieving scrape targets from Linode's Linode APIv4.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#linode_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Authorization header configuration.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be used at the same time as `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Default port to scrape metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Time after which the linode instances are refreshed.\",\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 \"region\": {\n \"description\": \"Optional region to filter on.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tagSeparator\": {\n \"description\": \"The string by which Linode Instance tags are joined into the tag label.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"metricRelabelings\": {\n \"description\": \"MetricRelabelConfigs to apply to samples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"metricsPath\": {\n \"description\": \"MetricsPath HTTP path to scrape for metrics. If empty, Prometheus uses the default value (e.g. /metrics).\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"nomadSDConfigs\": {\n \"description\": \"NomadSDConfigs defines a list of Nomad service discovery configurations.\",\n \"items\": {\n \"description\": \"NomadSDConfig configurations allow retrieving scrape targets from Nomad's Service API.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#nomad_sd_config\",\n \"properties\": {\n \"allowStale\": {\n \"description\": \"The information to access the Nomad API. It is to be defined\\nas the Nomad documentation requires.\",\n \"type\": \"boolean\"\n },\n \"authorization\": {\n \"description\": \"Authorization header to use on every scrape request.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"BasicAuth information to use on every scrape request.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth 2.0 configuration.\\nCannot be set at the same time as `authorization` or `basic_auth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function.\\nSupported units: y, w, d, h, m, s, ms\\nExamples: `30s`, `1m`, `1h20m15s`, `15d`\",\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 \"region\": {\n \"type\": \"string\"\n },\n \"server\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"tagSeparator\": {\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"server\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"oauth2\": {\n \"description\": \"OAuth2 configuration to use on every scrape request.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"openstackSDConfigs\": {\n \"description\": \"OpenStackSDConfigs defines a list of OpenStack service discovery configurations.\",\n \"items\": {\n \"description\": \"OpenStackSDConfig allow retrieving scrape targets from OpenStack Nova instances.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#openstack_sd_config\",\n \"properties\": {\n \"allTenants\": {\n \"description\": \"Whether the service discovery should list all instances for all projects.\\nIt is only relevant for the 'instance' role and usually requires admin permissions.\",\n \"type\": \"boolean\"\n },\n \"applicationCredentialId\": {\n \"description\": \"ApplicationCredentialID\",\n \"type\": \"string\"\n },\n \"applicationCredentialName\": {\n \"description\": \"The ApplicationCredentialID or ApplicationCredentialName fields are\\nrequired if using an application credential to authenticate. Some providers\\nallow you to create an application credential to authenticate rather than a\\npassword.\",\n \"type\": \"string\"\n },\n \"applicationCredentialSecret\": {\n \"description\": \"The applicationCredentialSecret field is required if using an application\\ncredential to authenticate.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"availability\": {\n \"description\": \"Availability of the endpoint to connect to.\",\n \"enum\": [\n \"Public\",\n \"public\",\n \"Admin\",\n \"admin\",\n \"Internal\",\n \"internal\"\n ],\n \"type\": \"string\"\n },\n \"domainID\": {\n \"description\": \"DomainID\",\n \"type\": \"string\"\n },\n \"domainName\": {\n \"description\": \"At most one of domainId and domainName must be provided if using username\\nwith Identity V3. Otherwise, either are optional.\",\n \"type\": \"string\"\n },\n \"identityEndpoint\": {\n \"description\": \"IdentityEndpoint specifies the HTTP endpoint that is required to work with\\nthe Identity API of the appropriate version.\",\n \"type\": \"string\"\n },\n \"password\": {\n \"description\": \"Password for the Identity V2 and V3 APIs. Consult with your provider's\\ncontrol panel to discover your account's preferred method of authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"port\": {\n \"description\": \"The port to scrape metrics from. If using the public IP address, this must\\ninstead be specified in the relabeling rule.\",\n \"type\": \"integer\"\n },\n \"projectID\": {\n \"description\": \" ProjectID\",\n \"type\": \"string\"\n },\n \"projectName\": {\n \"description\": \"The ProjectId and ProjectName fields are optional for the Identity V2 API.\\nSome providers allow you to specify a ProjectName instead of the ProjectId.\\nSome require both. Your provider's authentication policies will determine\\nhow these fields influence authentication.\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the instance list.\",\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 \"region\": {\n \"description\": \"The OpenStack Region.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"role\": {\n \"description\": \"The OpenStack role of entities that should be discovered.\",\n \"enum\": [\n \"Instance\",\n \"instance\",\n \"Hypervisor\",\n \"hypervisor\"\n ],\n \"type\": \"string\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration applying to the target HTTP endpoint.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"userid\": {\n \"description\": \"UserID\",\n \"type\": \"string\"\n },\n \"username\": {\n \"description\": \"Username is required if using Identity V2 API. Consult with your provider's\\ncontrol panel to discover your account's username.\\nIn Identity V3, either userid or a combination of username\\nand domainId or domainName are needed\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"region\",\n \"role\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"ovhcloudSDConfigs\": {\n \"description\": \"OVHCloudSDConfigs defines a list of OVHcloud service discovery configurations.\",\n \"items\": {\n \"description\": \"OVHCloudSDConfig configurations allow retrieving scrape targets from OVHcloud's dedicated servers and VPS using their API.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ovhcloud_sd_config\",\n \"properties\": {\n \"applicationKey\": {\n \"description\": \"Access key to use. https://api.ovh.com.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"applicationSecret\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"consumerKey\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpoint\": {\n \"description\": \"Custom endpoint to be used.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the resources list.\",\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 \"service\": {\n \"allOf\": [\n {\n \"enum\": [\n \"VPS\",\n \"DedicatedServer\"\n ]\n },\n {\n \"enum\": [\n \"VPS\",\n \"DedicatedServer\"\n ]\n }\n ],\n \"description\": \"Service of the targets to retrieve. Must be `VPS` or `DedicatedServer`.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"applicationKey\",\n \"applicationSecret\",\n \"consumerKey\",\n \"service\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"params\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"Optional HTTP URL parameters\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"puppetDBSDConfigs\": {\n \"description\": \"PuppetDBSDConfigs defines a list of PuppetDB service discovery configurations.\",\n \"items\": {\n \"description\": \"PuppetDBSDConfig configurations allow retrieving scrape targets from PuppetDB resources.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#puppetdb_sd_config\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"Optional `authorization` HTTP header configuration.\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"Optional HTTP basic authentication information.\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHTTP2\": {\n \"description\": \"Configure whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether the HTTP requests should follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"includeParameters\": {\n \"description\": \"Whether to include the parameters as meta labels.\\nNote: Enabling this exposes parameters in the Prometheus UI and API. Make sure\\nthat you don't have secrets exposed as parameters if you enable this.\",\n \"type\": \"boolean\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"oauth2\": {\n \"description\": \"Optional OAuth2.0 configuration.\\nCannot be set at the same time as `basicAuth`, or `authorization`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"port\": {\n \"description\": \"Port to scrape the metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"query\": {\n \"description\": \"Puppet Query Language (PQL) query. Only resources are supported.\\nhttps://puppet.com/docs/puppetdb/latest/api/query/v4/pql.html\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of resources.\",\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 \"tlsConfig\": {\n \"description\": \"TLS configuration to connect to the Puppet DB.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"url\": {\n \"description\": \"The URL of the PuppetDB root query endpoint.\",\n \"minLength\": 1,\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"query\",\n \"url\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"relabelings\": {\n \"description\": \"RelabelConfigs defines how to rewrite the target's labels before scraping.\\nPrometheus Operator automatically adds relabelings for a few standard Kubernetes fields.\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"minItems\": 1,\n \"type\": \"array\"\n },\n \"sampleLimit\": {\n \"description\": \"SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scalewaySDConfigs\": {\n \"description\": \"ScalewaySDConfigs defines a list of Scaleway instances and baremetal service discovery configurations.\",\n \"items\": {\n \"description\": \"ScalewaySDConfig configurations allow retrieving scrape targets from Scaleway instances and baremetal services.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scaleway_sd_config\",\n \"properties\": {\n \"accessKey\": {\n \"description\": \"Access key to use. https://console.scaleway.com/project/credentials\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"apiURL\": {\n \"description\": \"API URL to use when doing the server listing requests.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"enableHTTP2\": {\n \"description\": \"Whether to enable HTTP2.\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"Configure whether HTTP requests follow HTTP 3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"nameFilter\": {\n \"description\": \"NameFilter specify a name filter (works as a LIKE) to apply on the server listing request.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"The port to scrape metrics from.\",\n \"format\": \"int32\",\n \"maximum\": 65535,\n \"minimum\": 0,\n \"type\": \"integer\"\n },\n \"projectID\": {\n \"description\": \"Project ID of the targets.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"refreshInterval\": {\n \"description\": \"Refresh interval to re-read the list of instances.\",\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 \"role\": {\n \"description\": \"Service of the targets to retrieve. Must be `Instance` or `Baremetal`.\",\n \"enum\": [\n \"Instance\",\n \"Baremetal\"\n ],\n \"type\": \"string\"\n },\n \"secretKey\": {\n \"description\": \"Secret key to use when listing targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tagsFilter\": {\n \"description\": \"TagsFilter specify a tag filter (a server needs to have all defined tags to be listed) to apply on the server listing request.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"zone\": {\n \"description\": \"Zone is the availability zone of your targets (e.g. fr-par-1).\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"accessKey\",\n \"projectID\",\n \"role\",\n \"secretKey\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"Configures the protocol scheme used for requests.\\nIf empty, Prometheus uses HTTP by default.\",\n \"enum\": [\n \"HTTP\",\n \"HTTPS\"\n ],\n \"type\": \"string\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeInterval\": {\n \"description\": \"ScrapeInterval is the interval between consecutive scrapes.\",\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 \"scrapeProtocols\": {\n \"description\": \"The protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"scrapeTimeout\": {\n \"description\": \"ScrapeTimeout is the number of seconds to wait until a scrape request times out.\",\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 \"staticConfigs\": {\n \"description\": \"StaticConfigs defines a list of static targets with a common label set.\",\n \"items\": {\n \"description\": \"StaticConfig defines a Prometheus static configuration.\\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config\",\n \"properties\": {\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Labels assigned to all metrics scraped from the targets.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"targets\": {\n \"description\": \"List of targets for this static configuration.\",\n \"items\": {\n \"description\": \"Target represents a target for Prometheus to scrape\\nkubebuilder:validation:MinLength:=1\",\n \"type\": \"string\"\n },\n \"minItems\": 1,\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"required\": [\n \"targets\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"targetLimit\": {\n \"description\": \"TargetLimit defines a limit on the number of scraped targets that will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use on every scrape request\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"trackTimestampsStaleness\": {\n \"description\": \"TrackTimestampsStaleness whether Prometheus tracks staleness of\\nthe metrics that have an explicit timestamp present in scraped data.\\nHas no effect if `honorTimestamps` is false.\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Scrape Config\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1alpha1" + }, + "configuration": null, + "description": "", + "displayName": "Scrape Config", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ServiceMonitor.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ServiceMonitor.json new file mode 100644 index 00000000000..bf5b5b1b24c --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ServiceMonitor.json @@ -0,0 +1,196 @@ +{ + "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": "ServiceMonitor", + "schema": "{\n \"description\": \"The `ServiceMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of services.\\nAmong other things, it allows to specify:\\n* The services to scrape via label selectors.\\n* The container ports to scrape.\\n* Authentication credentials to use.\\n* Target and metric relabeling.\\n\\n`Prometheus` and `PrometheusAgent` objects select `ServiceMonitor` objects using label and namespace selectors.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of desired Service selection for target discovery by\\nPrometheus.\",\n \"properties\": {\n \"attachMetadata\": {\n \"description\": \"`attachMetadata` defines additional metadata which is added to the\\ndiscovered targets.\\n\\nIt requires Prometheus \\u003e= v2.37.0.\",\n \"properties\": {\n \"node\": {\n \"description\": \"When set to true, Prometheus attaches node metadata to the discovered\\ntargets.\\n\\nThe Prometheus service account must have the `list` and `watch`\\npermissions on the `Nodes` objects.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"bodySizeLimit\": {\n \"description\": \"When defined, bodySizeLimit specifies a job level limit on the size\\nof uncompressed response body that will be accepted by Prometheus.\\n\\nIt requires Prometheus \\u003e= v2.28.0.\",\n \"pattern\": \"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$\",\n \"type\": \"string\"\n },\n \"endpoints\": {\n \"description\": \"List of endpoints part of this ServiceMonitor.\\nDefines how to scrape metrics from Kubernetes [Endpoints](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) objects.\\nIn most cases, an Endpoints object is backed by a Kubernetes [Service](https://kubernetes.io/docs/concepts/services-networking/service/) object with the same name and labels.\",\n \"items\": {\n \"description\": \"Endpoint defines an endpoint serving Prometheus metrics to be scraped by\\nPrometheus.\",\n \"properties\": {\n \"authorization\": {\n \"description\": \"`authorization` configures the Authorization header credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `basicAuth`, or `oauth2`.\",\n \"properties\": {\n \"credentials\": {\n \"description\": \"Selects a key of a Secret in the namespace that contains the credentials for authentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": {\n \"description\": \"Defines the authentication type. The value is case-insensitive.\\n\\n\\\"Basic\\\" is not a supported value.\\n\\nDefault: \\\"Bearer\\\"\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"basicAuth\": {\n \"description\": \"`basicAuth` configures the Basic Authentication credentials to use when\\nscraping the target.\\n\\nCannot be set at the same time as `authorization`, or `oauth2`.\",\n \"properties\": {\n \"password\": {\n \"description\": \"`password` specifies a key of a Secret containing the password for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"username\": {\n \"description\": \"`username` specifies a key of a Secret containing the username for\\nauthentication.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"bearerTokenFile\": {\n \"description\": \"File to read bearer token for scraping the target.\\n\\nDeprecated: use `authorization` instead.\",\n \"type\": \"string\"\n },\n \"bearerTokenSecret\": {\n \"description\": \"`bearerTokenSecret` specifies a key of a Secret containing the bearer\\ntoken for scraping targets. The secret needs to be in the same namespace\\nas the ServiceMonitor object and readable by the Prometheus Operator.\\n\\nDeprecated: use `authorization` instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"enableHttp2\": {\n \"description\": \"`enableHttp2` can be used to disable HTTP2 when scraping the target.\",\n \"type\": \"boolean\"\n },\n \"filterRunning\": {\n \"description\": \"When true, the pods which are not running (e.g. either in Failed or\\nSucceeded state) are dropped during the target discovery.\\n\\nIf unset, the filtering is enabled.\\n\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase\",\n \"type\": \"boolean\"\n },\n \"followRedirects\": {\n \"description\": \"`followRedirects` defines whether the scrape requests should follow HTTP\\n3xx redirects.\",\n \"type\": \"boolean\"\n },\n \"honorLabels\": {\n \"description\": \"When true, `honorLabels` preserves the metric's labels when they collide\\nwith the target's labels.\",\n \"type\": \"boolean\"\n },\n \"honorTimestamps\": {\n \"description\": \"`honorTimestamps` controls whether Prometheus preserves the timestamps\\nwhen exposed by the target.\",\n \"type\": \"boolean\"\n },\n \"interval\": {\n \"description\": \"Interval at which Prometheus scrapes the metrics from the target.\\n\\nIf empty, Prometheus uses the global scrape interval.\",\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 \"metricRelabelings\": {\n \"description\": \"`metricRelabelings` configures the relabeling rules to apply to the\\nsamples before ingestion.\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"oauth2\": {\n \"description\": \"`oauth2` configures the OAuth2 settings to use when scraping the target.\\n\\nIt requires Prometheus \\u003e= 2.27.0.\\n\\nCannot be set at the same time as `authorization`, or `basicAuth`.\",\n \"properties\": {\n \"clientId\": {\n \"description\": \"`clientId` specifies a key of a Secret or ConfigMap containing the\\nOAuth2 client's ID.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"clientSecret\": {\n \"description\": \"`clientSecret` specifies a key of a Secret containing the OAuth2\\nclient's secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"endpointParams\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"`endpointParams` configures the HTTP parameters to append to the token\\nURL.\",\n \"type\": \"object\"\n },\n \"noProxy\": {\n \"description\": \"`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names\\nthat should be excluded from proxying. IP and domain names can\\ncontain port numbers.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"string\"\n },\n \"proxyConnectHeader\": {\n \"additionalProperties\": {\n \"items\": {\n \"description\": \"SecretKeySelector selects a key of a Secret.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"type\": \"array\"\n },\n \"description\": \"ProxyConnectHeader optionally specifies headers to send to\\nproxies during CONNECT requests.\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"proxyFromEnvironment\": {\n \"description\": \"Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).\\n\\nIt requires Prometheus \\u003e= v2.43.0 or Alertmanager \\u003e= 0.25.0.\",\n \"type\": \"boolean\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` defines the HTTP proxy server to use.\",\n \"pattern\": \"^http(s)?://.+$\",\n \"type\": \"string\"\n },\n \"scopes\": {\n \"description\": \"`scopes` defines the OAuth2 scopes used for the token request.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when connecting to the OAuth2 server.\\nIt requires Prometheus \\u003e= v2.43.0.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"tokenUrl\": {\n \"description\": \"`tokenURL` configures the URL to fetch the token from.\",\n \"minLength\": 1,\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientSecret\",\n \"tokenUrl\"\n ],\n \"type\": \"object\"\n },\n \"params\": {\n \"additionalProperties\": {\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"description\": \"params define optional HTTP URL parameters.\",\n \"type\": \"object\"\n },\n \"path\": {\n \"description\": \"HTTP path from which to scrape for metrics.\\n\\nIf empty, Prometheus uses the default value (e.g. `/metrics`).\",\n \"type\": \"string\"\n },\n \"port\": {\n \"description\": \"Name of the Service port which this endpoint refers to.\\n\\nIt takes precedence over `targetPort`.\",\n \"type\": \"string\"\n },\n \"proxyUrl\": {\n \"description\": \"`proxyURL` configures the HTTP Proxy URL (e.g.\\n\\\"http://proxyserver:2195\\\") to go through when scraping the target.\",\n \"type\": \"string\"\n },\n \"relabelings\": {\n \"description\": \"`relabelings` configures the relabeling rules to apply the target's\\nmetadata labels.\\n\\nThe Operator automatically adds relabelings for a few standard Kubernetes fields.\\n\\nThe original scrape job's name is available via the `__tmp_prometheus_job_name` label.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"items\": {\n \"description\": \"RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\\nscraped samples and remote write samples.\\n\\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config\",\n \"properties\": {\n \"action\": {\n \"default\": \"replace\",\n \"description\": \"Action to perform based on the regex matching.\\n\\n`Uppercase` and `Lowercase` actions require Prometheus \\u003e= v2.36.0.\\n`DropEqual` and `KeepEqual` actions require Prometheus \\u003e= v2.41.0.\\n\\nDefault: \\\"Replace\\\"\",\n \"enum\": [\n \"replace\",\n \"Replace\",\n \"keep\",\n \"Keep\",\n \"drop\",\n \"Drop\",\n \"hashmod\",\n \"HashMod\",\n \"labelmap\",\n \"LabelMap\",\n \"labeldrop\",\n \"LabelDrop\",\n \"labelkeep\",\n \"LabelKeep\",\n \"lowercase\",\n \"Lowercase\",\n \"uppercase\",\n \"Uppercase\",\n \"keepequal\",\n \"KeepEqual\",\n \"dropequal\",\n \"DropEqual\"\n ],\n \"type\": \"string\"\n },\n \"modulus\": {\n \"description\": \"Modulus to take of the hash of the source label values.\\n\\nOnly applicable when the action is `HashMod`.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"regex\": {\n \"description\": \"Regular expression against which the extracted value is matched.\",\n \"type\": \"string\"\n },\n \"replacement\": {\n \"description\": \"Replacement value against which a Replace action is performed if the\\nregular expression matches.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n },\n \"separator\": {\n \"description\": \"Separator is the string between concatenated SourceLabels.\",\n \"type\": \"string\"\n },\n \"sourceLabels\": {\n \"description\": \"The source labels select values from existing labels. Their content is\\nconcatenated using the configured Separator and matched against the\\nconfigured regular expression.\",\n \"items\": {\n \"description\": \"LabelName is a valid Prometheus label name which may only contain ASCII\\nletters, numbers, as well as underscores.\",\n \"pattern\": \"^[a-zA-Z_][a-zA-Z0-9_]*$\",\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLabel\": {\n \"description\": \"Label to which the resulting string is written in a replacement.\\n\\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\\n`KeepEqual` and `DropEqual` actions.\\n\\nRegex capture groups are available.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"scheme\": {\n \"description\": \"HTTP scheme to use for scraping.\\n\\n`http` and `https` are the expected values unless you rewrite the\\n`__scheme__` label via relabeling.\\n\\nIf empty, Prometheus uses the default value `http`.\",\n \"enum\": [\n \"http\",\n \"https\"\n ],\n \"type\": \"string\"\n },\n \"scrapeTimeout\": {\n \"description\": \"Timeout after which Prometheus considers the scrape to be failed.\\n\\nIf empty, Prometheus uses the global scrape timeout unless it is less\\nthan the target's scrape interval value in which the latter is used.\",\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 \"targetPort\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Name or number of the target port of the `Pod` object behind the\\nService. The port must be specified with the container's port property.\",\n \"x-kubernetes-int-or-string\": true\n },\n \"tlsConfig\": {\n \"description\": \"TLS configuration to use when scraping the target.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"trackTimestampsStaleness\": {\n \"description\": \"`trackTimestampsStaleness` defines whether Prometheus tracks staleness of\\nthe metrics that have an explicit timestamp present in scraped data.\\nHas no effect if `honorTimestamps` is false.\\n\\nIt requires Prometheus \\u003e= v2.48.0.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"fallbackScrapeProtocol\": {\n \"description\": \"The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.\\n\\nIt requires Prometheus \\u003e= v3.0.0.\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"jobLabel\": {\n \"description\": \"`jobLabel` selects the label from the associated Kubernetes `Service`\\nobject which will be used as the `job` label for all metrics.\\n\\nFor example if `jobLabel` is set to `foo` and the Kubernetes `Service`\\nobject is labeled with `foo: bar`, then Prometheus adds the `job=\\\"bar\\\"`\\nlabel to all ingested metrics.\\n\\nIf the value of this field is empty or if the label doesn't exist for\\nthe given Service, the `job` label of the metrics defaults to the name\\nof the associated Kubernetes `Service`.\",\n \"type\": \"string\"\n },\n \"keepDroppedTargets\": {\n \"description\": \"Per-scrape limit on the number of targets dropped by relabeling\\nthat will be kept in memory. 0 means no limit.\\n\\nIt requires Prometheus \\u003e= v2.47.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelLimit\": {\n \"description\": \"Per-scrape limit on number of labels that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelNameLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels name that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"labelValueLengthLimit\": {\n \"description\": \"Per-scrape limit on length of labels value that will be accepted for a sample.\\n\\nIt requires Prometheus \\u003e= v2.27.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"namespaceSelector\": {\n \"description\": \"`namespaceSelector` defines in which namespace(s) Prometheus should discover the services.\\nBy default, the services are discovered in the same namespace as the `ServiceMonitor` object but it is possible to select pods across different/all namespaces.\",\n \"properties\": {\n \"any\": {\n \"description\": \"Boolean describing whether all namespaces are selected in contrast to a\\nlist restricting them.\",\n \"type\": \"boolean\"\n },\n \"matchNames\": {\n \"description\": \"List of namespace names to select from.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n },\n \"nativeHistogramBucketLimit\": {\n \"description\": \"If there are more than this many buckets in a native histogram,\\nbuckets will be merged to stay within the limit.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"nativeHistogramMinBucketFactor\": {\n \"anyOf\": [\n {\n \"type\": \"integer\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"If the growth factor of one bucket to the next is smaller than this,\\nbuckets will be merged to increase the factor sufficiently.\\nIt requires Prometheus \\u003e= v2.50.0.\",\n \"pattern\": \"^(\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\\\+|-)?(([0-9]+(\\\\.[0-9]*)?)|(\\\\.[0-9]+))))?$\",\n \"x-kubernetes-int-or-string\": true\n },\n \"podTargetLabels\": {\n \"description\": \"`podTargetLabels` defines the labels which are transferred from the\\nassociated Kubernetes `Pod` object onto the ingested metrics.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"sampleLimit\": {\n \"description\": \"`sampleLimit` defines a per-scrape limit on the number of scraped samples\\nthat will be accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n },\n \"scrapeClass\": {\n \"description\": \"The scrape class to apply.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"scrapeClassicHistograms\": {\n \"description\": \"Whether to scrape a classic histogram that is also exposed as a native histogram.\\nIt requires Prometheus \\u003e= v2.45.0.\",\n \"type\": \"boolean\"\n },\n \"scrapeProtocols\": {\n \"description\": \"`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the\\nprotocols supported by Prometheus in order of preference (from most to least preferred).\\n\\nIf unset, Prometheus uses its default value.\\n\\nIt requires Prometheus \\u003e= v2.49.0.\",\n \"items\": {\n \"description\": \"ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.\\nSupported values are:\\n* `OpenMetricsText0.0.1`\\n* `OpenMetricsText1.0.0`\\n* `PrometheusProto`\\n* `PrometheusText0.0.4`\\n* `PrometheusText1.0.0`\",\n \"enum\": [\n \"PrometheusProto\",\n \"OpenMetricsText0.0.1\",\n \"OpenMetricsText1.0.0\",\n \"PrometheusText0.0.4\",\n \"PrometheusText1.0.0\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"selector\": {\n \"description\": \"Label selector to select the Kubernetes `Endpoints` objects to scrape metrics from.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"selectorMechanism\": {\n \"description\": \"Mechanism used to select the endpoints to scrape.\\nBy default, the selection process relies on relabel configurations to filter the discovered targets.\\nAlternatively, you can opt in for role selectors, which may offer better efficiency in large clusters.\\nWhich strategy is best for your use case needs to be carefully evaluated.\\n\\nIt requires Prometheus \\u003e= v2.17.0.\",\n \"enum\": [\n \"RelabelConfig\",\n \"RoleSelector\"\n ],\n \"type\": \"string\"\n },\n \"targetLabels\": {\n \"description\": \"`targetLabels` defines the labels which are transferred from the\\nassociated Kubernetes `Service` object onto the ingested metrics.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"targetLimit\": {\n \"description\": \"`targetLimit` defines a limit on the number of scraped targets that will\\nbe accepted.\",\n \"format\": \"int64\",\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"endpoints\",\n \"selector\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Service Monitor\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Service Monitor", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ThanosRuler.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ThanosRuler.json new file mode 100644 index 00000000000..cc36b98933e --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/components/ThanosRuler.json @@ -0,0 +1,196 @@ +{ + "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": "ThanosRuler", + "schema": "{\n \"description\": \"The `ThanosRuler` custom resource definition (CRD) defines a desired [Thanos Ruler](https://github.com/thanos-io/thanos/blob/main/docs/components/rule.md) setup to run in a Kubernetes cluster.\\n\\nA `ThanosRuler` instance requires at least one compatible Prometheus API endpoint (either Thanos Querier or Prometheus services).\\n\\nThe resource defines via label and namespace selectors which `PrometheusRule` objects should be associated to the deployed Thanos Ruler instances.\",\n \"properties\": {\n \"spec\": {\n \"description\": \"Specification of the desired behavior of the ThanosRuler cluster. More info:\\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n \"properties\": {\n \"additionalArgs\": {\n \"description\": \"AdditionalArgs allows setting additional arguments for the ThanosRuler container.\\nIt is intended for e.g. activating hidden flags which are not supported by\\nthe dedicated configuration options yet. The arguments are passed as-is to the\\nThanosRuler container which may cause issues if they are invalid or not supported\\nby the given ThanosRuler version.\\nIn case of an argument conflict (e.g. an argument which is already set by the\\noperator itself) or when providing an invalid argument the reconciliation will\\nfail and an error will be logged.\",\n \"items\": {\n \"description\": \"Argument as part of the AdditionalArgs list.\",\n \"properties\": {\n \"name\": {\n \"description\": \"Name of the argument, e.g. \\\"scrape.discovery-reload-interval\\\".\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\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 \"alertDropLabels\": {\n \"description\": \"Configures the label names which should be dropped in Thanos Ruler\\nalerts.\\n\\nThe replica label `thanos_ruler_replica` will always be dropped from the alerts.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"alertQueryUrl\": {\n \"description\": \"The external Query URL the Thanos Ruler will set in the 'Source' field\\nof all alerts.\\nMaps to the '--alert.query-url' CLI arg.\",\n \"type\": \"string\"\n },\n \"alertRelabelConfigFile\": {\n \"description\": \"Configures the path to the alert relabeling configuration file.\\n\\nAlert relabel configuration must have the form as specified in the\\nofficial Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs\\n\\nThe operator performs no validation of the configuration file.\\n\\nThis field takes precedence over `alertRelabelConfig`.\",\n \"type\": \"string\"\n },\n \"alertRelabelConfigs\": {\n \"description\": \"Configures alert relabeling in Thanos Ruler.\\n\\nAlert relabel configuration must have the form as specified in the\\nofficial Prometheus documentation:\\nhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs\\n\\nThe operator performs no validation of the configuration.\\n\\n`alertRelabelConfigFile` takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"alertmanagersConfig\": {\n \"description\": \"Configures the list of Alertmanager endpoints to send alerts to.\\n\\nThe configuration format is defined at https://thanos.io/tip/components/rule.md/#alertmanager.\\n\\nIt requires Thanos \\u003e= v0.10.0.\\n\\nThe operator performs no validation of the configuration.\\n\\nThis field takes precedence over `alertmanagersUrl`.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"alertmanagersUrl\": {\n \"description\": \"Configures the list of Alertmanager endpoints to send alerts to.\\n\\nFor Thanos \\u003e= v0.10.0, it is recommended to use `alertmanagersConfig` instead.\\n\\n`alertmanagersConfig` takes precedence over this field.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"containers\": {\n \"description\": \"Containers allows injecting additional containers or modifying operator generated\\ncontainers. This can be used to allow adding an authentication proxy to a ThanosRuler pod or\\nto change the behavior of an operator generated container. Containers described here modify\\nan operator generated container if they share the same name and modifications are done via a\\nstrategic merge patch. The current container names are: `thanos-ruler` and `config-reloader`.\\nOverriding containers is entirely outside the scope of what the maintainers will support and by doing\\nso, you accept that this behaviour may break at any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"dnsConfig\": {\n \"description\": \"Defines the DNS configuration for the pods.\",\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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n },\n \"options\": {\n \"description\": \"A list of DNS resolver options.\\nThis will be merged with the base options generated from DNSPolicy.\\nResolution 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\": \"Name is required and must be unique.\",\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"value\": {\n \"description\": \"Value is optional.\",\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 \"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.\",\n \"items\": {\n \"minLength\": 1,\n \"type\": \"string\"\n },\n \"type\": \"array\",\n \"x-kubernetes-list-type\": \"set\"\n }\n },\n \"type\": \"object\"\n },\n \"dnsPolicy\": {\n \"description\": \"Defines the DNS policy for the pods.\",\n \"enum\": [\n \"ClusterFirstWithHostNet\",\n \"ClusterFirst\",\n \"Default\",\n \"None\"\n ],\n \"type\": \"string\"\n },\n \"enforcedNamespaceLabel\": {\n \"description\": \"EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert\\nand metric that is user created. The label value will always be the namespace of the object that is\\nbeing created.\",\n \"type\": \"string\"\n },\n \"evaluationInterval\": {\n \"default\": \"15s\",\n \"description\": \"Interval between consecutive evaluations.\",\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 \"excludedFromEnforcement\": {\n \"description\": \"List of references to PrometheusRule objects\\nto be excluded from enforcing a namespace label of origin.\\nApplies only if enforcedNamespaceLabel set to true.\",\n \"items\": {\n \"description\": \"ObjectReference references a PodMonitor, ServiceMonitor, Probe or PrometheusRule object.\",\n \"properties\": {\n \"group\": {\n \"default\": \"monitoring.coreos.com\",\n \"description\": \"Group of the referent. When not specified, it defaults to `monitoring.coreos.com`\",\n \"enum\": [\n \"monitoring.coreos.com\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the referent. When not set, all resources in the namespace are matched.\",\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 \"minLength\": 1,\n \"type\": \"string\"\n },\n \"resource\": {\n \"description\": \"Resource of the referent.\",\n \"enum\": [\n \"prometheusrules\",\n \"servicemonitors\",\n \"podmonitors\",\n \"probes\",\n \"scrapeconfigs\"\n ],\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"namespace\",\n \"resource\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"externalPrefix\": {\n \"description\": \"The external URL the Thanos Ruler instances will be available under. This is\\nnecessary to generate correct URLs. This is necessary if Thanos Ruler is not\\nserved from root of a DNS name.\",\n \"type\": \"string\"\n },\n \"grpcServerTlsConfig\": {\n \"description\": \"GRPCServerTLSConfig configures the gRPC server from which Thanos Querier reads\\nrecorded rule data.\\nNote: Currently only the CAFile, CertFile, and KeyFile fields are supported.\\nMaps to the '--grpc-server-tls-*' CLI args.\",\n \"properties\": {\n \"ca\": {\n \"description\": \"Certificate authority used when verifying server certificates.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"caFile\": {\n \"description\": \"Path to the CA cert in the Prometheus container to use for the targets.\",\n \"type\": \"string\"\n },\n \"cert\": {\n \"description\": \"Client certificate to present when doing client-authentication.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the client cert file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"insecureSkipVerify\": {\n \"description\": \"Disable target certificate validation.\",\n \"type\": \"boolean\"\n },\n \"keyFile\": {\n \"description\": \"Path to the client key file in the Prometheus container for the targets.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the client key file for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.41.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum acceptable TLS version.\\n\\nIt requires Prometheus \\u003e= v2.35.0.\",\n \"enum\": [\n \"TLS10\",\n \"TLS11\",\n \"TLS12\",\n \"TLS13\"\n ],\n \"type\": \"string\"\n },\n \"serverName\": {\n \"description\": \"Used to verify the hostname for the targets.\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"hostAliases\": {\n \"description\": \"Pods' hostAliases configuration\",\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 },\n \"ip\": {\n \"description\": \"IP address of the host file entry.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"hostnames\",\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 \"image\": {\n \"description\": \"Thanos container image URL.\",\n \"type\": \"string\"\n },\n \"imagePullPolicy\": {\n \"description\": \"Image pull policy for the 'thanos', 'init-config-reloader' and 'config-reloader' containers.\\nSee https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.\",\n \"enum\": [\n \"\",\n \"Always\",\n \"Never\",\n \"IfNotPresent\"\n ],\n \"type\": \"string\"\n },\n \"imagePullSecrets\": {\n \"description\": \"An optional list of references to secrets in the same namespace\\nto use for pulling thanos images from registries\\nsee http://kubernetes.io/docs/user-guide/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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"type\": \"array\"\n },\n \"initContainers\": {\n \"description\": \"InitContainers allows adding initContainers to the pod definition. Those can be used to e.g.\\nfetch secrets for injection into the ThanosRuler configuration from external sources. Any\\nerrors during the execution of an initContainer will lead to a restart of the Pod.\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\\nUsing initContainers for any use case other then secret fetching is entirely outside the scope\\nof what the maintainers will support and by doing so, you accept that this behaviour may break\\nat any time without notice.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 an HTTP GET 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 a duration that the container should sleep.\",\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 backward compatibility. There is no validation of this field and\\nlifecycle hooks will fail at runtime when it 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 value is Default 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\\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 a command to execute in the container.\",\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 a GRPC HealthCheckRequest.\",\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 \"default\": \"\",\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\\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 an HTTP GET 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 a connection to 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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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 },\n \"labels\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Configures the external label pairs of the ThanosRuler resource.\\n\\nA default replica label `thanos_ruler_replica` will be always added as a\\nlabel with the value of the pod's name.\",\n \"type\": \"object\"\n },\n \"listenLocal\": {\n \"description\": \"ListenLocal makes the Thanos ruler listen on loopback, so that it\\ndoes not bind against the Pod IP.\",\n \"type\": \"boolean\"\n },\n \"logFormat\": {\n \"description\": \"Log format for ThanosRuler to be configured with.\",\n \"enum\": [\n \"\",\n \"logfmt\",\n \"json\"\n ],\n \"type\": \"string\"\n },\n \"logLevel\": {\n \"description\": \"Log level for ThanosRuler to be configured with.\",\n \"enum\": [\n \"\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ],\n \"type\": \"string\"\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)\\nThis is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds feature gate.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"nodeSelector\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Define which Nodes the Pods are scheduled on.\",\n \"type\": \"object\"\n },\n \"objectStorageConfig\": {\n \"description\": \"Configures object storage.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage\\n\\nThe operator performs no validation of the configuration.\\n\\n`objectStorageConfigFile` takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"objectStorageConfigFile\": {\n \"description\": \"Configures the path of the object storage configuration file.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage\\n\\nThe operator performs no validation of the configuration file.\\n\\nThis field takes precedence over `objectStorageConfig`.\",\n \"type\": \"string\"\n },\n \"paused\": {\n \"description\": \"When a ThanosRuler deployment is paused, no actions except for deletion\\nwill be performed on the underlying objects.\",\n \"type\": \"boolean\"\n },\n \"podMetadata\": {\n \"description\": \"PodMetadata configures labels and annotations which are propagated to the ThanosRuler pods.\\n\\nThe following items are reserved and cannot be overridden:\\n* \\\"app.kubernetes.io/name\\\" label, set to \\\"thanos-ruler\\\".\\n* \\\"app.kubernetes.io/managed-by\\\" label, set to \\\"prometheus-operator\\\".\\n* \\\"app.kubernetes.io/instance\\\" label, set to the name of the ThanosRuler instance.\\n* \\\"thanos-ruler\\\" label, set to the name of the ThanosRuler instance.\\n* \\\"kubectl.kubernetes.io/default-container\\\" annotation, set to \\\"thanos-ruler\\\".\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"portName\": {\n \"default\": \"web\",\n \"description\": \"Port name used for the pods and governing service.\\nDefaults to `web`.\",\n \"type\": \"string\"\n },\n \"priorityClassName\": {\n \"description\": \"Priority class assigned to the Pods\",\n \"type\": \"string\"\n },\n \"prometheusRulesExcludedFromEnforce\": {\n \"description\": \"PrometheusRulesExcludedFromEnforce - list of Prometheus rules to be excluded from enforcing\\nof adding namespace labels. Works only if enforcedNamespaceLabel set to true.\\nMake sure both ruleNamespace and ruleName are set for each pair\\nDeprecated: use excludedFromEnforcement instead.\",\n \"items\": {\n \"description\": \"PrometheusRuleExcludeConfig enables users to configure excluded\\nPrometheusRule names and their namespaces to be ignored while enforcing\\nnamespace label for alerts and metrics.\",\n \"properties\": {\n \"ruleName\": {\n \"description\": \"Name of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n },\n \"ruleNamespace\": {\n \"description\": \"Namespace of the excluded PrometheusRule object.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ruleName\",\n \"ruleNamespace\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"queryConfig\": {\n \"description\": \"Configures the list of Thanos Query endpoints from which to query metrics.\\n\\nThe configuration format is defined at https://thanos.io/tip/components/rule.md/#query-api\\n\\nIt requires Thanos \\u003e= v0.11.0.\\n\\nThe operator performs no validation of the configuration.\\n\\nThis field takes precedence over `queryEndpoints`.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"queryEndpoints\": {\n \"description\": \"Configures the list of Thanos Query endpoints from which to query metrics.\\n\\nFor Thanos \\u003e= v0.11.0, it is recommended to use `queryConfig` instead.\\n\\n`queryConfig` takes precedence over this field.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"replicas\": {\n \"description\": \"Number of thanos ruler instances to deploy.\",\n \"format\": \"int32\",\n \"type\": \"integer\"\n },\n \"resources\": {\n \"description\": \"Resources defines the resource requirements for single Pods.\\nIf not provided, no requests/limits will be set\",\n \"properties\": {\n \"claims\": {\n \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims,\\nthat are used by this container.\\n\\nThis is an alpha field and requires enabling the\\nDynamicResourceAllocation feature gate.\\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 \"request\": {\n \"description\": \"Request is the name chosen for a request in the referenced claim.\\nIf empty, everything from the claim is made available, otherwise\\nonly the result of this request.\",\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 \"retention\": {\n \"default\": \"24h\",\n \"description\": \"Time duration ThanosRuler shall retain data for. Default is '24h',\\nand must match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds seconds minutes hours days weeks years).\",\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 \"routePrefix\": {\n \"description\": \"The route prefix ThanosRuler registers HTTP handlers for. This allows thanos UI to be served on a sub-path.\",\n \"type\": \"string\"\n },\n \"ruleNamespaceSelector\": {\n \"description\": \"Namespaces to be selected for Rules discovery. If unspecified, only\\nthe same namespace as the ThanosRuler object is in is used.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"ruleSelector\": {\n \"description\": \"PrometheusRule objects to be selected for rule evaluation. An empty\\nlabel selector matches all objects. A null label selector matches no\\nobjects.\",\n \"properties\": {\n \"matchExpressions\": {\n \"description\": \"matchExpressions is a list of label selector requirements. 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 \"securityContext\": {\n \"description\": \"SecurityContext holds pod-level security attributes and common container settings.\\nThis defaults to the default PodSecurityContext.\",\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\\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\\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 \"seLinuxChangePolicy\": {\n \"description\": \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\\nIt has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\\nValid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime.\\nThis may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option.\\nThis requires all Pods that share the same volume to use the same SELinux label.\\nIt is not possible to share the same volume among privileged and unprivileged Pods.\\nEligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\\nwhose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\\nCSIDriver instance. Other volumes are always re-labelled recursively.\\n\\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used.\\nIf not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes\\nand \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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\\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\\naddition to the container's primary GID and fsGroup (if specified). If\\nthe SupplementalGroupsPolicy feature is enabled, the\\nsupplementalGroupsPolicy field determines whether these are in addition\\nto or instead of any group memberships defined in the container image.\\nIf unspecified, no additional groups are added, though group memberships\\ndefined in the container image may still be used, depending on the\\nsupplementalGroupsPolicy field.\\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 \"supplementalGroupsPolicy\": {\n \"description\": \"Defines how supplemental groups of the first container processes are calculated.\\nValid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used.\\n(Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\\nand the container runtime must implement support for this feature.\\nNote that this field cannot be set when spec.os.name is windows.\",\n \"type\": \"string\"\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 \"serviceAccountName\": {\n \"description\": \"ServiceAccountName is the name of the ServiceAccount to use to run the\\nThanos Ruler Pods.\",\n \"type\": \"string\"\n },\n \"storage\": {\n \"description\": \"Storage spec to specify how storage shall be used.\",\n \"properties\": {\n \"disableMountSubPath\": {\n \"description\": \"Deprecated: subPath usage will be removed in a future release.\",\n \"type\": \"boolean\"\n },\n \"emptyDir\": {\n \"description\": \"EmptyDirVolumeSource to be used by the StatefulSet.\\nIf specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`.\\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\": \"EphemeralVolumeSource to be used by the StatefulSet.\\nThis is a beta field in k8s 1.21 and GA in 1.15.\\nFor lower versions, starting with k8s 1.19, it requires enabling the GenericEphemeralVolume feature gate.\\nMore info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes\",\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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 \"volumeClaimTemplate\": {\n \"description\": \"Defines the PVC spec to be used by the Prometheus StatefulSets.\\nThe easiest way to use a volume that cannot be automatically provisioned\\nis to use a label selector alongside manually created PersistentVolumes.\",\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\": \"EmbeddedMetadata contains metadata relevant to an EmbeddedResource.\",\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 \"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 \"name\": {\n \"description\": \"Name must be unique within a namespace. Is required when creating resources, although\\nsome resources may allow a client to request the generation of an appropriate name\\nautomatically. Name is primarily intended for creation idempotence and configuration\\ndefinition.\\nCannot be updated.\\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"spec\": {\n \"description\": \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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\": \"Deprecated: this field is never set.\",\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\\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\\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\\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\\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\\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\\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 \"description\": \"Status is the status of the condition.\\nCan be True, False, Unknown.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"Type is the type of the condition.\\nMore info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\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 },\n \"type\": \"object\"\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 \"topologySpreadConstraints\": {\n \"description\": \"If specified, the pod's topology spread constraints.\",\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\\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\\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\\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\\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 \"tracingConfig\": {\n \"description\": \"Configures tracing.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nThe operator performs no validation of the configuration.\\n\\n`tracingConfigFile` takes precedence over this field.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"tracingConfigFile\": {\n \"description\": \"Configures the path of the tracing configuration file.\\n\\nThe configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration\\n\\nThis is an *experimental feature*, it may change in any upcoming release\\nin a breaking way.\\n\\nThe operator performs no validation of the configuration file.\\n\\nThis field takes precedence over `tracingConfig`.\",\n \"type\": \"string\"\n },\n \"version\": {\n \"description\": \"Version of Thanos to be deployed.\",\n \"type\": \"string\"\n },\n \"volumeMounts\": {\n \"description\": \"VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition.\\nVolumeMounts specified will be appended to other VolumeMounts in the ruler container,\\nthat are generated as a result of StorageSpec objects.\",\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\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\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\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\\nNone (or be unspecified, which defaults to None).\\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\": \"Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will\\nbe appended to other volumes that are generated as a result of StorageSpec objects.\",\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.\\nDeprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\\nawsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\\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\",\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.\\nDeprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\\nare redirected to the disk.csi.azure.com CSI driver.\",\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 \"default\": \"ext4\",\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 \"default\": false,\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.\\nDeprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\\nare redirected to the file.csi.azure.com CSI driver.\",\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.\\nDeprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Cinder is deprecated. All operations for the in-tree cinder type\\nare redirected to the cinder.csi.openstack.org CSI driver.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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\\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\\nUse PersistentVolumeClaim or one of the vendor-specific\\nAPIs for volumes that persist for longer than the lifecycle\\nof an individual pod.\\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\\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\\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\\nThis field is read-only and no changes will be made by Kubernetes\\nto the PVC after it has been created.\\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 \"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(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\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.\",\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.\\nDeprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\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.\\nDeprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\\ngcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\\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\",\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.\\nDeprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\\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 \"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 \"image\": {\n \"description\": \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\\nThe volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\n- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\n- IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\\nA failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\\nThe types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\\nThe OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\\nThe volume will be mounted read-only (ro) and non-executable files (noexec).\\nSub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\\nThe field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n \"properties\": {\n \"pullPolicy\": {\n \"description\": \"Policy for pulling OCI objects. Possible values are:\\nAlways: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\\nNever: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\\nIfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n \"type\": \"string\"\n },\n \"reference\": {\n \"description\": \"Required: Image or artifact reference to be used.\\nBehaves in the same way as pod.spec.containers[*].image.\\nPull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\\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 },\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\",\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 \"default\": \"default\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\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.\\nDeprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\\nare redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\\nis on.\",\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. Each entry in this list\\nhandles one source.\",\n \"items\": {\n \"description\": \"Projection that may be projected along with other supported volume types.\\nExactly one of these fields must be set.\",\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\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the\\ncombination of signer name and a label selector.\\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\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.\\nDeprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\\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\",\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 \"default\": \"/etc/ceph/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 \"default\": \"rbd\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\",\n \"x-kubernetes-map-type\": \"atomic\"\n },\n \"user\": {\n \"default\": \"admin\",\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.\\nDeprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n \"properties\": {\n \"fsType\": {\n \"default\": \"xfs\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"default\": \"ThinProvisioned\",\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.\\nDeprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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.\\nDeprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\\nare redirected to the csi.vsphere.vmware.com CSI driver.\",\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 \"web\": {\n \"description\": \"Defines the configuration of the ThanosRuler web server.\",\n \"properties\": {\n \"httpConfig\": {\n \"description\": \"Defines HTTP parameters for web server.\",\n \"properties\": {\n \"headers\": {\n \"description\": \"List of headers that can be added to HTTP responses.\",\n \"properties\": {\n \"contentSecurityPolicy\": {\n \"description\": \"Set the Content-Security-Policy header to HTTP responses.\\nUnset if blank.\",\n \"type\": \"string\"\n },\n \"strictTransportSecurity\": {\n \"description\": \"Set the Strict-Transport-Security header to HTTP responses.\\nUnset if blank.\\nPlease make sure that you use this with care as this header might force\\nbrowsers to load Prometheus and the other applications hosted on the same\\ndomain and subdomains over HTTPS.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security\",\n \"type\": \"string\"\n },\n \"xContentTypeOptions\": {\n \"description\": \"Set the X-Content-Type-Options header to HTTP responses.\\nUnset if blank. Accepted value is nosniff.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options\",\n \"enum\": [\n \"\",\n \"NoSniff\"\n ],\n \"type\": \"string\"\n },\n \"xFrameOptions\": {\n \"description\": \"Set the X-Frame-Options header to HTTP responses.\\nUnset if blank. Accepted values are deny and sameorigin.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\",\n \"enum\": [\n \"\",\n \"Deny\",\n \"SameOrigin\"\n ],\n \"type\": \"string\"\n },\n \"xXSSProtection\": {\n \"description\": \"Set the X-XSS-Protection header to all responses.\\nUnset if blank.\\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"http2\": {\n \"description\": \"Enable HTTP/2 support. Note that HTTP/2 is only supported with TLS.\\nWhen TLSConfig is not configured, HTTP/2 will be disabled.\\nWhenever the value of the field changes, a rolling update will be triggered.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n },\n \"tlsConfig\": {\n \"description\": \"Defines the TLS parameters for HTTPS.\",\n \"properties\": {\n \"cert\": {\n \"description\": \"Contains the TLS certificate for the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"certFile\": {\n \"description\": \"Path to the TLS certificate file in the Prometheus container for the server.\\nMutually exclusive with `cert`.\",\n \"type\": \"string\"\n },\n \"cipherSuites\": {\n \"description\": \"List of supported cipher suites for TLS versions up to TLS 1.2. If empty,\\nGo default cipher suites are used. Available cipher suites are documented\\nin the go documentation: https://golang.org/pkg/crypto/tls/#pkg-constants\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"clientAuthType\": {\n \"description\": \"Server policy for client authentication. Maps to ClientAuth Policies.\\nFor more detail on clientAuth options:\\nhttps://golang.org/pkg/crypto/tls/#ClientAuthType\",\n \"type\": \"string\"\n },\n \"clientCAFile\": {\n \"description\": \"Path to the CA certificate file for client certificate authentication to the server.\\nMutually exclusive with `client_ca`.\",\n \"type\": \"string\"\n },\n \"client_ca\": {\n \"description\": \"Contains the CA certificate for client certificate authentication to the server.\",\n \"properties\": {\n \"configMap\": {\n \"description\": \"ConfigMap containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"secret\": {\n \"description\": \"Secret containing data to use for the targets.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"curvePreferences\": {\n \"description\": \"Elliptic curves that will be used in an ECDHE handshake, in preference\\norder. Available curves are documented in the go documentation:\\nhttps://golang.org/pkg/crypto/tls/#CurveID\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"keyFile\": {\n \"description\": \"Path to the TLS key file in the Prometheus container for the server.\\nMutually exclusive with `keySecret`.\",\n \"type\": \"string\"\n },\n \"keySecret\": {\n \"description\": \"Secret containing the TLS key for the server.\",\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.\\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\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 \"maxVersion\": {\n \"description\": \"Maximum TLS version that is acceptable. Defaults to TLS13.\",\n \"type\": \"string\"\n },\n \"minVersion\": {\n \"description\": \"Minimum TLS version that is acceptable. Defaults to TLS12.\",\n \"type\": \"string\"\n },\n \"preferServerCipherSuites\": {\n \"description\": \"Controls whether the server selects the\\nclient's most preferred cipher suite, or the server's most preferred\\ncipher suite. If true then the server's preference, as expressed in\\nthe order of elements in cipherSuites, is used.\",\n \"type\": \"boolean\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"spec\"\n ],\n \"title\": \"Thanos Ruler\",\n \"type\": \"object\"\n}", + "version": "monitoring.coreos.com/v1" + }, + "configuration": null, + "description": "", + "displayName": "Thanos Ruler", + "format": "JSON", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "genealogy": "", + "isAnnotation": false, + "isNamespaced": true, + "published": false, + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz" + }, + "model": { + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "shape": "circle", + "source_uri": "https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-67.7.0/kube-prometheus-stack-67.7.0.tgz", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "components.meshery.io/v1beta1", + "status": "enabled", + "styles": { + "primaryColor": "", + "shape": "circle", + "svgColor": "", + "svgWhite": "" + }, + "version": "v1.0.0" + } \ No newline at end of file diff --git a/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/model.json b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/model.json new file mode 100644 index 00000000000..d3a01f32366 --- /dev/null +++ b/server/meshmodel/kube-prometheus/67.7.0/v1.0.0/model.json @@ -0,0 +1,44 @@ +{ + "category": { + "name": "Observability and Analysis" + }, + "displayName": "Kube Prometheus", + "id": "00000000-0000-0000-0000-000000000000", + "metadata": { + "capabilities": null, + "isAnnotation": false, + "primaryColor": "#e75225", + "secondaryColor": "#ec7551", + "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" + }, + "model": { + "version": "67.7.0" + }, + "name": "kube-prometheus", + "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": "enabled", + "subCategory": "Monitoring", + "version": "v1.0.0", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + } \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..809a0a2aa82 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.25.2" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..b3a30a542fd --- /dev/null +++ b/server/meshmodel/kubernetes/v1.25.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.25.2" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.31.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.31.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..5e354b9131c --- /dev/null +++ b/server/meshmodel/kubernetes/v1.31.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.31.1" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.31.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.31.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..e10afbf9138 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.31.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.31.1" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-alpha.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0-alpha.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..72032e17c08 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-alpha.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-alpha.1" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-alpha.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0-alpha.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..e62507d8858 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-alpha.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-alpha.1" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-alpha.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0-alpha.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..5ef1744dc64 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-alpha.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-alpha.2" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-alpha.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0-alpha.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..fa2e5eaf531 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-alpha.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-alpha.2" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-alpha.3/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0-alpha.3/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..2b76153cfd9 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-alpha.3/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-alpha.3" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-alpha.3/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0-alpha.3/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..fabe04fa5d6 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-alpha.3/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-alpha.3" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-beta.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0-beta.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..0174ff7473a --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-beta.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-beta.0" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-beta.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0-beta.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..bf39e46441f --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-beta.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-beta.0" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-rc.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0-rc.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..1e7a84a6563 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-rc.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-rc.0" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-rc.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0-rc.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..7106e09fc68 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-rc.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-rc.0" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-rc.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0-rc.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..fa1c13e65d4 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-rc.1/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-rc.1" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-rc.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0-rc.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..73af1cab43e --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-rc.1/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-rc.1" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-rc.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0-rc.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..3470bbf903d --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-rc.2/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-rc.2" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0-rc.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0-rc.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..e7d3bed2784 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0-rc.2/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0-rc.2" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json b/server/meshmodel/kubernetes/v1.32.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json new file mode 100644 index 00000000000..44fdad3c694 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0/v1.0.0/relationships/hierarchical-parent-inventory-dfdpsbf.json @@ -0,0 +1,157 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Pod", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/kubernetes/v1.32.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json b/server/meshmodel/kubernetes/v1.32.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json new file mode 100644 index 00000000000..075a2251b87 --- /dev/null +++ b/server/meshmodel/kubernetes/v1.32.0/v1.0.0/relationships/hierarchical-parent-inventory-dfhgpsbf.json @@ -0,0 +1,161 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "evaluationQuery": "", + "kind": "hierarchical", + "metadata": { + "description": "A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component.", + "styles": { + "primaryColor": "", + "svgColor": "", + "svgWhite": "" + }, + "isAnnotation": false + }, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "v1.32.0" + }, + "name": "kubernetes", + "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": "", + "name": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "schemaVersion": "relationships.meshery.io/v1alpha3", + "selectors": [ + { + "allow": { + "from": [ + { + "id": null, + "kind": "Container", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "meshery-core", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatorRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ], + "to": [ + { + "id": null, + "kind": "Deployment", + "match": {}, + "model": { + "category": { + "name": "" + }, + "displayName": "", + "id": "00000000-0000-0000-0000-000000000000", + "model": { + "version": "" + }, + "name": "kubernetes", + "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": "", + "status": "", + "sub_type": "", + "type": "", + "updated_at": "0001-01-01T00:00:00Z", + "user_id": "00000000-0000-0000-0000-000000000000" + }, + "connection_id": "00000000-0000-0000-0000-000000000000", + "schemaVersion": "", + "status": "", + "version": "", + "components": null, + "relationships": null, + "components_count": 0, + "relationships_count": 0 + }, + "patch": { + "patchStrategy": "replace", + "mutatedRef": [ + [ + "configuration", + "spec", + "template", + "spec", + "containers", + "_" + ] + ] + } + } + ] + } + } + ], + "subType": "alias", + "status": "enabled", + "type": "parent", + "version": "v1.0.0" +} \ No newline at end of file diff --git a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/alias_policy.rego b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/alias_policy.rego new file mode 100644 index 00000000000..202315b4e62 --- /dev/null +++ b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/alias_policy.rego @@ -0,0 +1,370 @@ +package relationship_evaluation_policy + +# ----------- Module Alias Policy ------------------------------------------------------------------------ +# This module is responsible for evaluating alias relationships. +# Alias relationships occur when a component serves as an alias +# to a field in another component. +# Example: A Container acts as an alias to the field `spec.containers[x]` +# in a Pod (where `x` is the index of the container in the Pod). +# +# 1. Validation of Alias Relationships: +# - A previously approved alias relationship remains valid if: +# - The path it aliases still exists in the parent component. +# - The child alias component is still present. +# - The alias relationship becomes invalid if: +# - The child component is missing (e.g., the user deleted the container component inside the Pod). +# - The aliased configuration in the parent is missing +# (e.g., the user deleted the `containers` field in the Pod). +# +# 2. Identification of Alias Relationships: +# - An alias relationship exists if fields in the component are defined as aliases in the relationship block. +# - The alias relationship is identified by the presence of a selector where: +# - `from` specifies the child component. +# - `to` specifies the parent component. +# - The `mutatorRef`/`mutatedRef` must be a single-item array, +# where the item at index `0` points to the field in the child component that acts as an alias to the parent. +# - Newly identified relationships have a status of **pending**. +# +# 3. Action Phase: +# - For each pending relationship: +# - Add the alias component to the design file (if not already present). +# - Update the status of the relationship to **approved**. +# - For approved relationships: +# - No action is required. +# - For deleted relationships: +# - Remove the alias component from the design file. +# - Remove the aliased configuration from the parent component. + +import rego.v1 + +is_alias_relationship(relationship) if { + lower(relationship.kind) == "hierarchical" + lower(relationship.type) == "parent" + lower(relationship.subType) == "alias" +} + +# Get the from component id +from_component_id(relationship) := component if { + some selector in relationship.selectors + some from in selector.allow.from + component := from.id +} + +# Get the to component id +to_component_id(relationship) := component if { + some selector in relationship.selectors + some to in selector.allow.to + component := to.id +} + +# Get the component declaration by id +component_declaration_by_id(design_file, id) := component if { + some component in design_file.components + component.id == id +} + +alias_ref_from_relationship(relationship) := ref if { + some selector in relationship.selectors + some from in selector.allow.from + ref := from.patch.mutatorRef[0] +} + +identify_relationships(design_file, relationships_in_scope) := eval_results if { + eval_results := union({new_relationships | + some relationship in relationships_in_scope + + is_alias_relationship(relationship) + some component in design_file.components + + # print("is alias rel", component) + is_relationship_feasible_to(component, relationship) + + # print("rel is feasible") + + identified_relationships := identify_alias_relationships(component, relationship) + new_relationships := {rel | + some rel in identified_relationships + not alias_relationship_already_exists(design_file, rel) + } + }) + #print("Identify alias rels Eval results", count(eval_results)) + +} + +new_uuid(seed) := id if { + now := format_int(time.now_ns(), 10) + id := uuid.rfc4122(sprintf("%s%s", [seed, now])) +} + +object_get_nested(obj, path, default_value) := current_value if { + stringfied_path := [sprintf("%v", [v]) | some v in path] + [current_path, current_value] := walk(obj) + stringfied_current_path := [sprintf("%v", [v]) | some v in current_path] + stringfied_current_path == stringfied_path +} else := default_value + +pop_last(arr) := array.slice(arr, 0, count(arr) - 1) + +array_endswith(arr, item) if { + arr[count(arr) - 1] == item +} + +# check if the reference is a direct reference or an array reference +# if the reference is a direct reference then it should not end with _ +is_direct_reference(ref) if { + not array_endswith(ref, "_") +} + +identify_alias_paths(from, to, component) := paths if { + ref := from.patch.mutatorRef[0] + not is_direct_reference(ref) + direct_ref := pop_last(ref) + + print("Direct Ref", direct_ref) + + # remove nullish values + items := [item | + some item in object_get_nested(component, direct_ref, []) + item != null + ] + + #print("Items", items) + count(items) > 0 + + paths := [path | + some index in numbers.range(0, count(items) - 1) + path := array.concat(direct_ref, [sprintf("%d", [index])]) + ] + #print("Paths", paths) +} + +identify_alias_paths(from, to, component) := paths if { + ref := from.patch.mutatorRef[0] + is_direct_reference(ref) + value := object_get_nested(component, ref, null) + value != null + paths := [ref] +} + +identify_alias_relationships(component, relationship) := {rel | + some selector in relationship.selectors + some from in selector.allow.from # from is child or alias + some to in selector.allow.to # to is parent + + # identify if alias can be created + identified_alias_paths := identify_alias_paths(from, to, component) + + #print("Identified Alias Paths", count(identified_alias_paths)) + + count(identified_alias_paths) > 0 # if alias paths are present then alias can be created + + some path in identified_alias_paths + + selector_patch_declaration := { + "patchStrategy": "replace", + "mutatorRef": [path], # path to the component that needs to be mutated ( basically the ref to alias) + "mutatedRef": [path], + } + + # create alias relationship declaration + selector_declaration := { + "allow": { + "from": [json.patch(from, [ + { + "op": "replace", + "path": "/id", + "value": new_uuid({"c": component, "s": selector_patch_declaration}), + # use both component and selector patch declaration to create a unique id + }, + { + "op": "replace", + "path": "/patch", + "value": selector_patch_declaration, + }, + ])], + "to": [json.patch(to, [ + { + "op": "replace", + "path": "/id", + "value": component.id, + }, + { + "op": "replace", + "path": "/patch", + "value": selector_patch_declaration, + }, + ])], + }, + "deny": {}, + } + + # print("selector dec", selector) + + rel := json.patch(relationship, [ + { + "op": "add", + "path": "/selectors", + "value": [selector_declaration], + }, + { + "op": "add", + "path": "/id", + "value": new_uuid(selector_declaration), + }, + { + "op": "replace", + "path": "/status", + "value": "pending", + }, + ]) +} + +alias_relationship_already_exists(design_file, relationship) := existing_rel if { + some existing_rel in design_file.relationships + existing_rel.status != "deleted" # check if the relationship is not deleted + is_alias_relationship(existing_rel) + + some selector in existing_rel.selectors + some to in selector.allow.to + + some new_selector in relationship.selectors + some new_to in new_selector.allow.to + + to.kind == new_to.kind + to.patch == new_to.patch + to.id == new_to.id +} + +is_relationship_feasible_to(component, relationship) := to if { + some selector in relationship.selectors + some to in selector.allow.to + is_relationship_feasible(to, component.component.kind) +} + +## Validate + +# validate relationship and return the updated relationship +is_alias_relationship_valid(relationship, design_file) if { + relationship.status == "approved" + + # check if the from component is still present + from_component := component_declaration_by_id(design_file, from_component_id(relationship)) + from_component != null + + #print("Is valid -> from_component", from_component) + + # check if the to component is still present + to_component := component_declaration_by_id(design_file, to_component_id(relationship)) + to_component != null + + #print("Is valid -> to_component", to_component) + + # check if the path in the to component is still present + + ref := alias_ref_from_relationship(relationship) + + #print("Is valid -> ref", ref,relationship.id) + value := object_get_nested(to_component, ref, null) + + #print("Is valid -> value", value) + value != null +} + +is_alias_relationship_valid(relationship, design_file) if { + relationship.status == "pending" +} + +validate_relationship(relationship, design_file) := relationship if { + is_alias_relationship_valid(relationship, design_file) +} + +validate_relationship(relationship, design_file) := updated_relationship if { + not is_alias_relationship_valid(relationship, design_file) + updated_relationship := json.patch(relationship, [{ + "op": "replace", + "path": "/status", + "value": "deleted", + }]) +} + +# validate all relationships in the design file +validate_relationships_phase(design_file) := {validated | + some rel in design_file.relationships + validated := validate_relationship(rel, design_file) +} + +## Action Phase + +add_components_action(design_file, alias_relationships) := {component | + some relationship in alias_relationships + relationship.status == "pending" + some selector in relationship.selectors + some from in selector.allow.from + + component := { + "id": from.id, + "component": {"kind": from.kind}, + "model": from.model, + } +} + +remove_components_action(design_file, alias_relationships) := {component | + some relationship in alias_relationships + relationship.status == "deleted" + some selector in relationship.selectors + some from in selector.allow.from + + component := component_declaration_by_id(design_file, from.id) +} + +# action response { +# components_added : list of components added +# components_deleted : list of components deleted +# components_updated : list of components updated +# relationships_added : list of relationships added +# relationships_deleted : list of relationships deleted +# relationships_updated : list of relationships updated +# } +action_phase(design_file) := result if { + alias_relationships := {rel | + some rel in design_file.relationships + is_alias_relationship(rel) + } + + components_added := add_components_action(design_file, alias_relationships) + relationships_added := {rel | + some alias_rel in alias_relationships + alias_rel.status == "pending" + rel := json.patch(alias_rel, [{ + "op": "replace", + "path": "/status", + "value": "approved", + }]) + } + + # Relationships that are deleted already at the validation phase + relationships_deleted := {alias_rel | + some alias_rel in alias_relationships + alias_rel.status == "deleted" + } + + print("Relationships Deleted by alias policy", count(relationships_deleted)) + + component_deleted := remove_components_action(design_file, alias_relationships) + + print("Components added", count(components_added)) + + result := { + "components_to_add": components_added, + "components_to_delete": component_deleted, + "updates": {}, + "relationships_to_add": relationships_added, + "relationships_to_delete": relationships_deleted, + } +} else := { + "components_to_add": {}, + "components_to_delete": {}, + "updates": {}, + "relationships_to_add": {}, + "relationships_to_delete": {}, +} diff --git a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/evaluation.rego b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/evaluation.rego index bb6d9020b11..007c0e4ad74 100644 --- a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/evaluation.rego +++ b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/evaluation.rego @@ -19,6 +19,10 @@ filter_pending_relationships(rel, relationships) := rel if { } } +# scope for relationships to evaluate against +# TODO: make this dynamic based on the models referenced in the design file +relationships_to_evaluate_against := data.relationships + # Main evaluation function that processes relationships and updates the design. evaluate := eval_results if { # Iterate over relationships in the design file and resolve patches. @@ -143,19 +147,116 @@ evaluate := eval_results if { "value": final_rels_with_deletions, }]) + # New Evaluation Flow + + + design_file_to_evaluate := json.patch(input, [ + { + "op": "replace", + "path": "/relationships", + "value": {rel | some rel in input.relationships}, + }, + { + "op": "replace", + "path": "/components", + "value": {comp | some comp in input.components}, + }, + ]) + + + #1. Validate Relationships + validated_rels := validate_relationships_phase(design_file_to_evaluate) + + design_file_with_validated_rels := json.patch(design_file_to_evaluate, [{ + "op": "replace", + "path": "/relationships", + "value": validated_rels, + }]) + + + # 2. Identify relationships in the design file. + new_identified_rels := identify_relationships(design_file_with_validated_rels, relationships_to_evaluate_against) + + print("New identified rels", count(new_identified_rels)) + print("Validated rels", count(validated_rels)) + + #3. Actions + + design_file_to_apply_actions := json.patch(design_file_with_validated_rels, [{ + "op": "replace", + "path": "/relationships", + "value": new_identified_rels | validated_rels, + }]) + + print("All relationships", count(design_file_to_apply_actions.relationships)) + + actions_response := action_phase(design_file_to_apply_actions) + + # Prepare the final design to return. + design_to_return := final_design_from_actions( + final_design_file, + actions_response, + ) + # Prepare the evaluation results with updated design and trace information. eval_results := { - "design": final_design_file, + "design": design_to_return, "trace": { "componentsUpdated": updated_declarations, - "componentsAdded": components_added, - "relationshipsAdded": relationships_added, - "relationshipsRemoved": relationships_deleted, + "componentsAdded": array_to_set(components_added) | actions_response.components_to_add, + "componentsRemoved": actions_response.components_to_delete, + "relationshipsAdded": array_to_set(relationships_added) | actions_response.relationships_to_add, + "relationshipsRemoved": array_to_set(relationships_deleted) | actions_response.relationships_to_delete, "relationshipsUpdated": intermediate_rels, }, } } +# --- Post Processing Phase ---## +delete_components(all_comps, comps_to_delete) := new_comps if { + count(comps_to_delete) > 0 + ids_to_delete := { comp.id | some comp in comps_to_delete } + new_comps := {comp | + some comp in all_comps + not comp.id in ids_to_delete + } +} else := all_comps + +delete_relationships(all_rels, rels_to_delete) := new_rels if { + count(rels_to_delete) > 0 + ids_to_delete := {rel.id | some rel in rels_to_delete } + new_rels := {rel | + some rel in all_rels + not rel.id in ids_to_delete + } +} else := all_rels + +final_design_from_actions(old_design, actions_response) := new_design if { + # Add new components to the design + + with_new_components := array_to_set(old_design.components) | actions_response.components_to_add + final_components := delete_components(with_new_components, actions_response.components_to_delete) + + # Add new relationships to the design + with_new_relationships := array_to_set(old_design.relationships) | actions_response.relationships_to_add + final_relationships := delete_relationships(with_new_relationships, actions_response.relationships_to_delete) + + new_design := json.patch(old_design, [ + { + "op": "replace", + "path": "/components", + "value": final_components, + }, + { + "op": "replace", + "path": "/relationships", + "value": final_relationships, + }, + ]) +} else := old_design + +# ----------------------------------------------# + # Returns the updated declaration if it exists; otherwise, returns the original declaration. filter_updated_declaration(declaration, updated_declarations) := obj.declaration if { some obj in updated_declarations diff --git a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/helper_rules.rego b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/helper_rules.rego index 779038b5d34..15ecad57c43 100644 --- a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/helper_rules.rego +++ b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/helper_rules.rego @@ -4,6 +4,14 @@ import rego.v1 # Contains all the helper functions used in the policy. +set_to_array(set) := [val | + some val in set +] + +array_to_set(arr) := {val | + some val in arr +} + # Checks if object 'x' has key 'k'. has_key(x, k) if { x[k] @@ -136,6 +144,12 @@ extract_components_by_type(declarations, selector) := {result | # 1. when operators/regex are used in the version fields # 2. deny selctor +is_relationship_feasible_from(fromComponent, relationship) := from if { + some selector in relationship.selectors + some from in selector.allow.from + is_relationship_feasible(from, fromComponent.component.kind) +} + is_relationship_feasible(selector, comp_type) if { selector.kind == "*" } diff --git a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/hierarchical_parent_and_edge_network.rego b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/hierarchical_parent_and_edge_network.rego index dcd45425e9e..e1b9743e3a6 100644 --- a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/hierarchical_parent_and_edge_network.rego +++ b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/hierarchical_parent_and_edge_network.rego @@ -13,6 +13,9 @@ perform_eval( {"kind": "hierarchical", "type": "parent"}, {"kind": "edge", "type": "non-binding"}, ] + not_applicable_on_rels := [{"kind": "hierarchical", "type": "parent", "subType": "alias"}] + + not {"kind": lower(relationship.kind), "type": lower(relationship.type), "subType": lower(relationship.subType)} in not_applicable_on_rels {"kind": lower(relationship.kind), "type": lower(relationship.type)} in applicable_on_rels diff --git a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/identify_additions.rego b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/identify_additions.rego index 899644da672..eec98f86e01 100644 --- a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/identify_additions.rego +++ b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/identify_additions.rego @@ -12,6 +12,7 @@ identify_additions( ) := unique_comps if { lower(relationship.kind) == "hierarchical" lower(relationship.type) == "parent" + lower(relationship.subType) == "inventory" # evaluate for all subTypes. comps_to_add := {result | diff --git a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/relationship_diff_policy.rego b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/relationship_diff_policy.rego index 7a2e083b469..3462a7bc3ef 100644 --- a/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/relationship_diff_policy.rego +++ b/server/meshmodel/meshery-core/0.7.2/v1.0.0/policies/relationship_diff_policy.rego @@ -18,6 +18,7 @@ evaluate_relationships_deleted( not does_relationship_exist_in_design(identified_relationships, existing_rel) not existing_rel.subType == "annotation" + not existing_rel.subType == "alias" not existing_rel.metadata.isAnnotation == true relationship := json.patch(existing_rel, [{ "op": "replace",