nautobot 2.4.0b1__py3-none-any.whl → 2.4.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/apps/__init__.py +1 -1
- nautobot/apps/api.py +8 -8
- nautobot/apps/change_logging.py +2 -2
- nautobot/apps/choices.py +4 -4
- nautobot/apps/events.py +3 -3
- nautobot/apps/factory.py +2 -2
- nautobot/apps/filters.py +1 -1
- nautobot/apps/forms.py +20 -20
- nautobot/apps/graphql.py +2 -2
- nautobot/apps/jobs.py +8 -8
- nautobot/apps/models.py +19 -19
- nautobot/apps/tables.py +1 -1
- nautobot/apps/testing.py +10 -10
- nautobot/apps/ui.py +2 -2
- nautobot/apps/utils.py +7 -7
- nautobot/apps/views.py +7 -7
- nautobot/circuits/api/serializers.py +1 -0
- nautobot/circuits/api/views.py +4 -8
- nautobot/circuits/tables.py +2 -1
- nautobot/circuits/templates/circuits/circuit_create.html +1 -7
- nautobot/circuits/views.py +3 -3
- nautobot/cloud/api/views.py +6 -10
- nautobot/cloud/models.py +1 -1
- nautobot/cloud/views.py +0 -16
- nautobot/core/api/constants.py +11 -0
- nautobot/core/api/fields.py +5 -5
- nautobot/core/api/filter_backends.py +3 -9
- nautobot/core/api/schema.py +13 -2
- nautobot/core/api/serializers.py +40 -34
- nautobot/core/api/views.py +56 -4
- nautobot/core/celery/log.py +4 -4
- nautobot/core/celery/schedulers.py +2 -2
- nautobot/core/choices.py +2 -2
- nautobot/core/events/__init__.py +3 -3
- nautobot/core/filters.py +67 -35
- nautobot/core/forms/__init__.py +19 -19
- nautobot/core/forms/fields.py +14 -11
- nautobot/core/forms/forms.py +33 -2
- nautobot/core/graphql/types.py +1 -1
- nautobot/core/jobs/__init__.py +28 -7
- nautobot/core/jobs/bulk_actions.py +285 -0
- nautobot/core/jobs/cleanup.py +48 -12
- nautobot/core/jobs/groups.py +1 -1
- nautobot/core/management/commands/validate_models.py +1 -1
- nautobot/core/models/__init__.py +3 -1
- nautobot/core/models/query_functions.py +2 -2
- nautobot/core/models/tree_queries.py +6 -3
- nautobot/core/settings.py +29 -2
- nautobot/core/settings.yaml +21 -0
- nautobot/core/tables.py +79 -61
- nautobot/core/templates/about.html +67 -0
- nautobot/core/templates/inc/media.html +3 -0
- nautobot/core/templates/inc/nav_menu.html +1 -0
- nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
- nautobot/core/templates/inc/tenant_table_row.html +11 -0
- nautobot/core/templates/nautobot_config.py.j2 +13 -0
- nautobot/core/templates/search.html +7 -0
- nautobot/core/templates/utilities/render_jinja2.html +1 -1
- nautobot/core/templates/utilities/templatetags/tag.html +1 -1
- nautobot/core/templates/utilities/theme_preview.html +7 -0
- nautobot/core/templatetags/helpers.py +11 -2
- nautobot/core/testing/__init__.py +8 -8
- nautobot/core/testing/api.py +170 -15
- nautobot/core/testing/filters.py +45 -10
- nautobot/core/testing/forms.py +2 -0
- nautobot/core/testing/integration.py +86 -4
- nautobot/core/testing/mixins.py +7 -2
- nautobot/core/testing/views.py +44 -29
- nautobot/core/tests/integration/test_app_home.py +0 -1
- nautobot/core/tests/integration/test_app_navbar.py +0 -1
- nautobot/core/tests/integration/test_filters.py +0 -2
- nautobot/core/tests/integration/test_home.py +0 -1
- nautobot/core/tests/integration/test_navbar.py +0 -1
- nautobot/core/tests/integration/test_view_authentication.py +1 -0
- nautobot/core/tests/runner.py +1 -1
- nautobot/core/tests/test_api.py +98 -1
- nautobot/core/tests/test_csv.py +25 -3
- nautobot/core/tests/test_filters.py +209 -246
- nautobot/core/tests/test_forms.py +1 -0
- nautobot/core/tests/test_jobs.py +460 -1
- nautobot/core/tests/test_models.py +9 -0
- nautobot/core/tests/test_settings_schema.py +7 -0
- nautobot/core/tests/test_tables.py +100 -0
- nautobot/core/tests/test_utils.py +63 -1
- nautobot/core/tests/test_views.py +30 -3
- nautobot/core/ui/nav.py +1 -0
- nautobot/core/ui/object_detail.py +15 -1
- nautobot/core/urls.py +11 -0
- nautobot/core/utils/lookup.py +11 -8
- nautobot/core/utils/querysets.py +64 -0
- nautobot/core/utils/requests.py +24 -9
- nautobot/core/views/__init__.py +42 -0
- nautobot/core/views/generic.py +131 -197
- nautobot/core/views/mixins.py +126 -38
- nautobot/core/views/renderers.py +6 -6
- nautobot/dcim/api/serializers.py +56 -64
- nautobot/dcim/api/views.py +47 -113
- nautobot/dcim/constants.py +6 -13
- nautobot/dcim/factory.py +6 -1
- nautobot/dcim/filters/__init__.py +31 -2
- nautobot/dcim/forms.py +36 -17
- nautobot/dcim/graphql/types.py +2 -2
- nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
- nautobot/dcim/models/__init__.py +1 -1
- nautobot/dcim/models/device_component_templates.py +2 -2
- nautobot/dcim/models/device_components.py +22 -20
- nautobot/dcim/models/devices.py +10 -1
- nautobot/dcim/models/locations.py +3 -3
- nautobot/dcim/models/power.py +6 -5
- nautobot/dcim/models/racks.py +4 -4
- nautobot/dcim/tables/__init__.py +3 -3
- nautobot/dcim/tables/devices.py +7 -5
- nautobot/dcim/tables/devicetypes.py +2 -2
- nautobot/dcim/tables/racks.py +1 -1
- nautobot/dcim/templates/dcim/controller_create.html +1 -7
- nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
- nautobot/dcim/templates/dcim/device.html +1 -9
- nautobot/dcim/templates/dcim/device_edit.html +36 -37
- nautobot/dcim/templates/dcim/location.html +1 -9
- nautobot/dcim/templates/dcim/location_edit.html +1 -7
- nautobot/dcim/templates/dcim/rack.html +1 -9
- nautobot/dcim/templates/dcim/rack_edit.html +1 -7
- nautobot/dcim/templates/dcim/rackreservation.html +1 -9
- nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
- nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
- nautobot/dcim/tests/integration/test_controller.py +62 -0
- nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
- nautobot/dcim/tests/integration/test_device_bulk_delete.py +189 -0
- nautobot/dcim/tests/integration/test_device_bulk_edit.py +181 -0
- nautobot/dcim/tests/test_api.py +16 -5
- nautobot/dcim/tests/test_filters.py +33 -0
- nautobot/dcim/tests/test_forms.py +51 -2
- nautobot/dcim/tests/test_graphql.py +52 -0
- nautobot/dcim/tests/test_jobs.py +118 -0
- nautobot/dcim/tests/test_models.py +52 -9
- nautobot/dcim/tests/test_views.py +21 -83
- nautobot/dcim/views.py +1 -13
- nautobot/extras/api/customfields.py +2 -2
- nautobot/extras/api/serializers.py +90 -85
- nautobot/extras/api/views.py +22 -27
- nautobot/extras/constants.py +2 -0
- nautobot/extras/filters/__init__.py +8 -6
- nautobot/extras/forms/base.py +2 -2
- nautobot/extras/forms/forms.py +139 -31
- nautobot/extras/forms/mixins.py +14 -6
- nautobot/extras/group_sync.py +3 -3
- nautobot/extras/health_checks.py +1 -2
- nautobot/extras/jobs.py +85 -18
- nautobot/extras/managers.py +3 -1
- nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
- nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
- nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
- nautobot/extras/models/__init__.py +1 -1
- nautobot/extras/models/contacts.py +1 -1
- nautobot/extras/models/customfields.py +12 -11
- nautobot/extras/models/groups.py +11 -9
- nautobot/extras/models/jobs.py +23 -4
- nautobot/extras/models/models.py +2 -2
- nautobot/extras/plugins/__init__.py +13 -2
- nautobot/extras/plugins/marketplace_manifest.yml +84 -79
- nautobot/extras/plugins/tables.py +16 -14
- nautobot/extras/plugins/views.py +65 -69
- nautobot/extras/registry.py +1 -1
- nautobot/extras/secrets/__init__.py +2 -2
- nautobot/extras/tables.py +7 -5
- nautobot/extras/templates/extras/dynamicgroup.html +1 -9
- nautobot/extras/templates/extras/job_detail.html +16 -0
- nautobot/extras/templates/extras/job_edit.html +1 -0
- nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
- nautobot/extras/templates/extras/marketplace.html +29 -11
- nautobot/extras/templates/extras/plugin_detail.html +32 -15
- nautobot/extras/templates/extras/plugins_tiles.html +21 -10
- nautobot/extras/templatetags/job_buttons.py +4 -4
- nautobot/extras/test_jobs/api_test_job.py +1 -1
- nautobot/extras/test_jobs/atomic_transaction.py +2 -2
- nautobot/extras/test_jobs/dry_run.py +1 -1
- nautobot/extras/test_jobs/fail.py +5 -5
- nautobot/extras/test_jobs/file_output.py +1 -1
- nautobot/extras/test_jobs/file_upload_fail.py +1 -1
- nautobot/extras/test_jobs/file_upload_pass.py +1 -1
- nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
- nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
- nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
- nautobot/extras/test_jobs/log_redaction.py +1 -1
- nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
- nautobot/extras/test_jobs/modify_db.py +1 -1
- nautobot/extras/test_jobs/object_var_optional.py +1 -1
- nautobot/extras/test_jobs/object_var_required.py +1 -1
- nautobot/extras/test_jobs/object_vars.py +1 -1
- nautobot/extras/test_jobs/pass.py +3 -3
- nautobot/extras/test_jobs/profiling.py +1 -1
- nautobot/extras/test_jobs/relative_import.py +3 -3
- nautobot/extras/test_jobs/singleton.py +16 -0
- nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
- nautobot/extras/test_jobs/task_queues.py +1 -1
- nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
- nautobot/extras/tests/test_api.py +13 -13
- nautobot/extras/tests/test_customfields.py +1 -1
- nautobot/extras/tests/test_datasources.py +2 -1
- nautobot/extras/tests/test_dynamicgroups.py +1 -1
- nautobot/extras/tests/test_filters.py +6 -6
- nautobot/extras/tests/test_forms.py +33 -1
- nautobot/extras/tests/test_jobs.py +178 -32
- nautobot/extras/tests/test_models.py +16 -10
- nautobot/extras/tests/test_plugins.py +62 -9
- nautobot/extras/tests/test_relationships.py +120 -9
- nautobot/extras/tests/test_views.py +56 -194
- nautobot/extras/utils.py +3 -2
- nautobot/extras/views.py +30 -98
- nautobot/ipam/api/fields.py +3 -3
- nautobot/ipam/api/serializers.py +41 -33
- nautobot/ipam/api/views.py +68 -117
- nautobot/ipam/factory.py +1 -1
- nautobot/ipam/filters.py +3 -2
- nautobot/ipam/lookups.py +101 -62
- nautobot/ipam/models.py +66 -16
- nautobot/ipam/querysets.py +2 -2
- nautobot/ipam/tables.py +23 -7
- nautobot/ipam/templates/ipam/ipaddress.html +1 -9
- nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
- nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
- nautobot/ipam/templates/ipam/prefix.html +1 -9
- nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
- nautobot/ipam/templates/ipam/vlan.html +1 -9
- nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
- nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
- nautobot/ipam/tests/test_api.py +436 -3
- nautobot/ipam/tests/test_forms.py +49 -47
- nautobot/ipam/tests/test_migrations.py +30 -30
- nautobot/ipam/tests/test_models.py +95 -34
- nautobot/ipam/tests/test_querysets.py +63 -1
- nautobot/ipam/tests/test_views.py +3 -0
- nautobot/ipam/utils/__init__.py +36 -6
- nautobot/ipam/views.py +61 -87
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
- nautobot/project-static/docs/404.html +46 -4
- nautobot/project-static/docs/apps/index.html +46 -4
- nautobot/project-static/docs/apps/nautobot-apps.html +47 -6
- nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
- nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.88dd0f4e.min.js} +2 -2
- nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.88dd0f4e.min.js.map} +2 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +62 -10
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +59 -7
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +374 -122
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +90 -18
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +95 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +53 -6
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +52 -5
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +79 -17
- nautobot/project-static/docs/code-reference/nautobot/apps/events.html +102 -28
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +108 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +131 -38
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +239 -65
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +581 -165
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +109 -36
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +453 -167
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +493 -211
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +60 -8
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +71 -15
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +407 -55
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +620 -205
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +858 -412
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +59 -7
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +448 -186
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +365 -147
- nautobot/project-static/docs/development/apps/api/configuration-view.html +46 -4
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/global-search.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/graphql.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +68 -7
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +46 -4
- nautobot/project-static/docs/development/apps/api/prometheus.html +46 -4
- nautobot/project-static/docs/development/apps/api/setup.html +46 -4
- nautobot/project-static/docs/development/apps/api/testing.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/base-template.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/notes.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +52 -6
- nautobot/project-static/docs/development/apps/api/views/urls.html +46 -4
- nautobot/project-static/docs/development/apps/index.html +46 -4
- nautobot/project-static/docs/development/apps/migration/code-updates.html +46 -4
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +46 -4
- nautobot/project-static/docs/development/apps/migration/from-v1.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +46 -4
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +50 -8
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +46 -4
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +211 -14
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +46 -4
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +46 -4
- nautobot/project-static/docs/development/core/application-registry.html +46 -4
- nautobot/project-static/docs/development/core/best-practices.html +46 -4
- nautobot/project-static/docs/development/core/bootstrap-ui.html +46 -4
- nautobot/project-static/docs/development/core/caching.html +46 -4
- nautobot/project-static/docs/development/core/controllers.html +46 -4
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +73 -74
- nautobot/project-static/docs/development/core/generic-views.html +46 -4
- nautobot/project-static/docs/development/core/getting-started.html +249 -224
- nautobot/project-static/docs/development/core/homepage.html +49 -7
- nautobot/project-static/docs/development/core/index.html +46 -4
- nautobot/project-static/docs/development/core/{local-k8s.html → minikube-dev-environment-for-k8s-jobs.html} +469 -168
- nautobot/project-static/docs/development/core/model-checklist.html +56 -12
- nautobot/project-static/docs/development/core/model-features.html +46 -4
- nautobot/project-static/docs/development/core/natural-keys.html +46 -4
- nautobot/project-static/docs/development/core/navigation-menu.html +46 -4
- nautobot/project-static/docs/development/core/release-checklist.html +49 -7
- nautobot/project-static/docs/development/core/role-internals.html +46 -4
- nautobot/project-static/docs/development/core/settings.html +46 -4
- nautobot/project-static/docs/development/core/style-guide.html +49 -7
- nautobot/project-static/docs/development/core/templates.html +46 -4
- nautobot/project-static/docs/development/core/testing.html +46 -4
- nautobot/project-static/docs/development/core/ui-component-framework.html +369 -273
- nautobot/project-static/docs/development/core/user-preferences.html +46 -4
- nautobot/project-static/docs/development/index.html +46 -4
- nautobot/project-static/docs/development/jobs/index.html +216 -122
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +46 -4
- nautobot/project-static/docs/index.html +54 -23
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +47 -7
- nautobot/project-static/docs/overview/design_philosophy.html +46 -4
- nautobot/project-static/docs/release-notes/index.html +52 -12
- nautobot/project-static/docs/release-notes/version-1.0.html +234 -193
- nautobot/project-static/docs/release-notes/version-1.1.html +231 -190
- nautobot/project-static/docs/release-notes/version-1.2.html +306 -265
- nautobot/project-static/docs/release-notes/version-1.3.html +332 -291
- nautobot/project-static/docs/release-notes/version-1.4.html +417 -377
- nautobot/project-static/docs/release-notes/version-1.5.html +605 -566
- nautobot/project-static/docs/release-notes/version-1.6.html +904 -447
- nautobot/project-static/docs/release-notes/version-2.0.html +528 -489
- nautobot/project-static/docs/release-notes/version-2.1.html +363 -324
- nautobot/project-static/docs/release-notes/version-2.2.html +356 -317
- nautobot/project-static/docs/release-notes/version-2.3.html +997 -352
- nautobot/project-static/docs/release-notes/version-2.4.html +525 -101
- nautobot/project-static/docs/requirements.txt +2 -2
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +295 -287
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +48 -6
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +110 -8
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +48 -6
- nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +66 -8
- nautobot/project-static/docs/user-guide/administration/installation/index.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +47 -5
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/services.html +46 -4
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +46 -4
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +46 -4
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +46 -4
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +49 -8
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +50 -12
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +49 -7
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +51 -7
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +49 -7
- nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
- nautobot/project-static/docs/user-guide/index.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +50 -8
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/events.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +50 -7
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +49 -7
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +47 -5
- nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +94 -25
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +74 -5
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +46 -4
- nautobot/project-static/js/forms.js +1 -1
- nautobot/tenancy/api/views.py +9 -13
- nautobot/tenancy/views.py +4 -2
- nautobot/users/admin.py +1 -1
- nautobot/users/api/serializers.py +5 -4
- nautobot/users/api/views.py +3 -3
- nautobot/virtualization/api/serializers.py +4 -4
- nautobot/virtualization/api/views.py +5 -24
- nautobot/virtualization/filters.py +20 -3
- nautobot/virtualization/models.py +1 -1
- nautobot/virtualization/tables.py +2 -2
- nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
- nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
- nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
- nautobot/virtualization/tests/test_filters.py +17 -0
- nautobot/wireless/filters.py +2 -2
- nautobot/wireless/forms.py +1 -1
- nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
- nautobot/wireless/tests/integration/__init__.py +0 -0
- nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
- nautobot/wireless/tests/test_filters.py +29 -1
- nautobot/wireless/tests/test_views.py +22 -1
- nautobot/wireless/views.py +0 -10
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/METADATA +6 -6
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/RECORD +600 -550
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/WHEEL +1 -1
- nautobot/core/fixtures/user-data.json +0 -59
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/NOTICE +0 -0
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/entry_points.txt +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
<link rel="canonical" href="https://docs.nautobot.com/projects/core/en/stable/development/core/
|
|
11
|
+
<link rel="canonical" href="https://docs.nautobot.com/projects/core/en/stable/development/core/minikube-dev-environment-for-k8s-jobs.html">
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
<link rel="prev" href="homepage.html">
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
<link rel="icon" href="../../assets/favicon.ico">
|
|
21
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.
|
|
21
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.49">
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
<title>
|
|
25
|
+
<title>Minikube Dev Environment for K8s Jobs - Nautobot Documentation</title>
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div data-md-component="skip">
|
|
96
96
|
|
|
97
97
|
|
|
98
|
-
<a href="#
|
|
98
|
+
<a href="#minikube-dev-environment-for-k8s-jobs" class="md-skip">
|
|
99
99
|
Skip to content
|
|
100
100
|
</a>
|
|
101
101
|
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
131
131
|
<span class="md-ellipsis">
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
Minikube Dev Environment for K8s Jobs
|
|
134
134
|
|
|
135
135
|
</span>
|
|
136
136
|
</div>
|
|
@@ -2112,6 +2112,27 @@
|
|
|
2112
2112
|
|
|
2113
2113
|
|
|
2114
2114
|
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
|
|
2118
|
+
|
|
2119
|
+
|
|
2120
|
+
|
|
2121
|
+
<li class="md-nav__item">
|
|
2122
|
+
<a href="../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
<span class="md-ellipsis">
|
|
2126
|
+
Wireless Networks and Controllers
|
|
2127
|
+
</span>
|
|
2128
|
+
|
|
2129
|
+
|
|
2130
|
+
</a>
|
|
2131
|
+
</li>
|
|
2132
|
+
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
|
|
2115
2136
|
</ul>
|
|
2116
2137
|
</nav>
|
|
2117
2138
|
|
|
@@ -5131,6 +5152,27 @@
|
|
|
5131
5152
|
|
|
5132
5153
|
|
|
5133
5154
|
|
|
5155
|
+
<li class="md-nav__item">
|
|
5156
|
+
<a href="../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
|
|
5157
|
+
|
|
5158
|
+
|
|
5159
|
+
<span class="md-ellipsis">
|
|
5160
|
+
Kubernetes Job Support
|
|
5161
|
+
</span>
|
|
5162
|
+
|
|
5163
|
+
|
|
5164
|
+
</a>
|
|
5165
|
+
</li>
|
|
5166
|
+
|
|
5167
|
+
|
|
5168
|
+
|
|
5169
|
+
|
|
5170
|
+
|
|
5171
|
+
|
|
5172
|
+
|
|
5173
|
+
|
|
5174
|
+
|
|
5175
|
+
|
|
5134
5176
|
<li class="md-nav__item">
|
|
5135
5177
|
<a href="../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
|
|
5136
5178
|
|
|
@@ -8075,18 +8117,18 @@
|
|
|
8075
8117
|
|
|
8076
8118
|
|
|
8077
8119
|
<span class="md-ellipsis">
|
|
8078
|
-
|
|
8120
|
+
Minikube Dev Environment for K8s Jobs
|
|
8079
8121
|
</span>
|
|
8080
8122
|
|
|
8081
8123
|
|
|
8082
8124
|
<span class="md-nav__icon md-icon"></span>
|
|
8083
8125
|
</label>
|
|
8084
8126
|
|
|
8085
|
-
<a href="
|
|
8127
|
+
<a href="minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link md-nav__link--active">
|
|
8086
8128
|
|
|
8087
8129
|
|
|
8088
8130
|
<span class="md-ellipsis">
|
|
8089
|
-
|
|
8131
|
+
Minikube Dev Environment for K8s Jobs
|
|
8090
8132
|
</span>
|
|
8091
8133
|
|
|
8092
8134
|
|
|
@@ -8108,54 +8150,138 @@
|
|
|
8108
8150
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
8109
8151
|
|
|
8110
8152
|
<li class="md-nav__item">
|
|
8111
|
-
<a href="#
|
|
8153
|
+
<a href="#preliminary-setup" class="md-nav__link">
|
|
8112
8154
|
<span class="md-ellipsis">
|
|
8113
|
-
|
|
8155
|
+
Preliminary Setup
|
|
8114
8156
|
</span>
|
|
8115
8157
|
</a>
|
|
8116
8158
|
|
|
8117
8159
|
</li>
|
|
8118
8160
|
|
|
8119
8161
|
<li class="md-nav__item">
|
|
8120
|
-
<a href="#
|
|
8162
|
+
<a href="#starting-required-deployments" class="md-nav__link">
|
|
8121
8163
|
<span class="md-ellipsis">
|
|
8122
|
-
|
|
8164
|
+
Starting Required Deployments
|
|
8165
|
+
</span>
|
|
8166
|
+
</a>
|
|
8167
|
+
|
|
8168
|
+
<nav class="md-nav" aria-label="Starting Required Deployments">
|
|
8169
|
+
<ul class="md-nav__list">
|
|
8170
|
+
|
|
8171
|
+
<li class="md-nav__item">
|
|
8172
|
+
<a href="#check-required-files" class="md-nav__link">
|
|
8173
|
+
<span class="md-ellipsis">
|
|
8174
|
+
Check Required Files
|
|
8123
8175
|
</span>
|
|
8124
8176
|
</a>
|
|
8125
8177
|
|
|
8126
8178
|
</li>
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
<a href="#
|
|
8179
|
+
|
|
8180
|
+
<li class="md-nav__item">
|
|
8181
|
+
<a href="#build-an-up-to-date-nautobot-docker-image" class="md-nav__link">
|
|
8130
8182
|
<span class="md-ellipsis">
|
|
8131
|
-
|
|
8183
|
+
Build an up-to-date Nautobot Docker Image
|
|
8132
8184
|
</span>
|
|
8133
8185
|
</a>
|
|
8134
8186
|
|
|
8135
8187
|
</li>
|
|
8136
|
-
|
|
8137
|
-
|
|
8138
|
-
<a href="#
|
|
8188
|
+
|
|
8189
|
+
<li class="md-nav__item">
|
|
8190
|
+
<a href="#starting-the-deployments-and-services" class="md-nav__link">
|
|
8191
|
+
<span class="md-ellipsis">
|
|
8192
|
+
Starting the Deployments and Services
|
|
8193
|
+
</span>
|
|
8194
|
+
</a>
|
|
8195
|
+
|
|
8196
|
+
</li>
|
|
8197
|
+
|
|
8198
|
+
<li class="md-nav__item">
|
|
8199
|
+
<a href="#starting-the-configuration-maps-and-persistent-volume-claims" class="md-nav__link">
|
|
8139
8200
|
<span class="md-ellipsis">
|
|
8140
|
-
|
|
8201
|
+
Starting the Configuration Maps and Persistent Volume Claims
|
|
8141
8202
|
</span>
|
|
8142
8203
|
</a>
|
|
8143
8204
|
|
|
8205
|
+
</li>
|
|
8206
|
+
|
|
8207
|
+
<li class="md-nav__item">
|
|
8208
|
+
<a href="#port-forward-to-local-host" class="md-nav__link">
|
|
8209
|
+
<span class="md-ellipsis">
|
|
8210
|
+
Port Forward to Local Host
|
|
8211
|
+
</span>
|
|
8212
|
+
</a>
|
|
8213
|
+
|
|
8214
|
+
</li>
|
|
8215
|
+
|
|
8216
|
+
</ul>
|
|
8217
|
+
</nav>
|
|
8218
|
+
|
|
8144
8219
|
</li>
|
|
8145
8220
|
|
|
8146
8221
|
<li class="md-nav__item">
|
|
8147
|
-
<a href="#
|
|
8222
|
+
<a href="#run-a-kubernetes-job" class="md-nav__link">
|
|
8223
|
+
<span class="md-ellipsis">
|
|
8224
|
+
Run a Kubernetes Job
|
|
8225
|
+
</span>
|
|
8226
|
+
</a>
|
|
8227
|
+
|
|
8228
|
+
<nav class="md-nav" aria-label="Run a Kubernetes Job">
|
|
8229
|
+
<ul class="md-nav__list">
|
|
8230
|
+
|
|
8231
|
+
<li class="md-nav__item">
|
|
8232
|
+
<a href="#configure-a-new-job-queue-of-type-kubernetes" class="md-nav__link">
|
|
8233
|
+
<span class="md-ellipsis">
|
|
8234
|
+
Configure a New Job Queue of Type Kubernetes
|
|
8235
|
+
</span>
|
|
8236
|
+
</a>
|
|
8237
|
+
|
|
8238
|
+
</li>
|
|
8239
|
+
|
|
8240
|
+
<li class="md-nav__item">
|
|
8241
|
+
<a href="#assign-that-job-queue-to-a-job" class="md-nav__link">
|
|
8242
|
+
<span class="md-ellipsis">
|
|
8243
|
+
Assign that Job Queue to a Job
|
|
8244
|
+
</span>
|
|
8245
|
+
</a>
|
|
8246
|
+
|
|
8247
|
+
</li>
|
|
8248
|
+
|
|
8249
|
+
<li class="md-nav__item">
|
|
8250
|
+
<a href="#run-the-job" class="md-nav__link">
|
|
8251
|
+
<span class="md-ellipsis">
|
|
8252
|
+
Run the Job
|
|
8253
|
+
</span>
|
|
8254
|
+
</a>
|
|
8255
|
+
|
|
8256
|
+
</li>
|
|
8257
|
+
|
|
8258
|
+
<li class="md-nav__item">
|
|
8259
|
+
<a href="#inspect-the-job-result" class="md-nav__link">
|
|
8260
|
+
<span class="md-ellipsis">
|
|
8261
|
+
Inspect the Job Result
|
|
8262
|
+
</span>
|
|
8263
|
+
</a>
|
|
8264
|
+
|
|
8265
|
+
</li>
|
|
8266
|
+
|
|
8267
|
+
<li class="md-nav__item">
|
|
8268
|
+
<a href="#running-a-scheduled-job" class="md-nav__link">
|
|
8148
8269
|
<span class="md-ellipsis">
|
|
8149
|
-
Running a
|
|
8270
|
+
Running a Scheduled Job
|
|
8150
8271
|
</span>
|
|
8151
8272
|
</a>
|
|
8152
8273
|
|
|
8274
|
+
</li>
|
|
8275
|
+
|
|
8276
|
+
</ul>
|
|
8277
|
+
</nav>
|
|
8278
|
+
|
|
8153
8279
|
</li>
|
|
8154
8280
|
|
|
8155
8281
|
<li class="md-nav__item">
|
|
8156
|
-
<a href="#
|
|
8282
|
+
<a href="#after-running-a-job" class="md-nav__link">
|
|
8157
8283
|
<span class="md-ellipsis">
|
|
8158
|
-
|
|
8284
|
+
After Running a Job
|
|
8159
8285
|
</span>
|
|
8160
8286
|
</a>
|
|
8161
8287
|
|
|
@@ -9077,54 +9203,138 @@
|
|
|
9077
9203
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
9078
9204
|
|
|
9079
9205
|
<li class="md-nav__item">
|
|
9080
|
-
<a href="#
|
|
9206
|
+
<a href="#preliminary-setup" class="md-nav__link">
|
|
9081
9207
|
<span class="md-ellipsis">
|
|
9082
|
-
|
|
9208
|
+
Preliminary Setup
|
|
9083
9209
|
</span>
|
|
9084
9210
|
</a>
|
|
9085
9211
|
|
|
9086
9212
|
</li>
|
|
9087
9213
|
|
|
9088
9214
|
<li class="md-nav__item">
|
|
9089
|
-
<a href="#
|
|
9215
|
+
<a href="#starting-required-deployments" class="md-nav__link">
|
|
9216
|
+
<span class="md-ellipsis">
|
|
9217
|
+
Starting Required Deployments
|
|
9218
|
+
</span>
|
|
9219
|
+
</a>
|
|
9220
|
+
|
|
9221
|
+
<nav class="md-nav" aria-label="Starting Required Deployments">
|
|
9222
|
+
<ul class="md-nav__list">
|
|
9223
|
+
|
|
9224
|
+
<li class="md-nav__item">
|
|
9225
|
+
<a href="#check-required-files" class="md-nav__link">
|
|
9090
9226
|
<span class="md-ellipsis">
|
|
9091
|
-
|
|
9227
|
+
Check Required Files
|
|
9092
9228
|
</span>
|
|
9093
9229
|
</a>
|
|
9094
9230
|
|
|
9095
9231
|
</li>
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
<a href="#
|
|
9232
|
+
|
|
9233
|
+
<li class="md-nav__item">
|
|
9234
|
+
<a href="#build-an-up-to-date-nautobot-docker-image" class="md-nav__link">
|
|
9099
9235
|
<span class="md-ellipsis">
|
|
9100
|
-
|
|
9236
|
+
Build an up-to-date Nautobot Docker Image
|
|
9101
9237
|
</span>
|
|
9102
9238
|
</a>
|
|
9103
9239
|
|
|
9104
9240
|
</li>
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
<a href="#
|
|
9241
|
+
|
|
9242
|
+
<li class="md-nav__item">
|
|
9243
|
+
<a href="#starting-the-deployments-and-services" class="md-nav__link">
|
|
9244
|
+
<span class="md-ellipsis">
|
|
9245
|
+
Starting the Deployments and Services
|
|
9246
|
+
</span>
|
|
9247
|
+
</a>
|
|
9248
|
+
|
|
9249
|
+
</li>
|
|
9250
|
+
|
|
9251
|
+
<li class="md-nav__item">
|
|
9252
|
+
<a href="#starting-the-configuration-maps-and-persistent-volume-claims" class="md-nav__link">
|
|
9253
|
+
<span class="md-ellipsis">
|
|
9254
|
+
Starting the Configuration Maps and Persistent Volume Claims
|
|
9255
|
+
</span>
|
|
9256
|
+
</a>
|
|
9257
|
+
|
|
9258
|
+
</li>
|
|
9259
|
+
|
|
9260
|
+
<li class="md-nav__item">
|
|
9261
|
+
<a href="#port-forward-to-local-host" class="md-nav__link">
|
|
9108
9262
|
<span class="md-ellipsis">
|
|
9109
|
-
|
|
9263
|
+
Port Forward to Local Host
|
|
9110
9264
|
</span>
|
|
9111
9265
|
</a>
|
|
9112
9266
|
|
|
9267
|
+
</li>
|
|
9268
|
+
|
|
9269
|
+
</ul>
|
|
9270
|
+
</nav>
|
|
9271
|
+
|
|
9113
9272
|
</li>
|
|
9114
9273
|
|
|
9115
9274
|
<li class="md-nav__item">
|
|
9116
|
-
<a href="#
|
|
9275
|
+
<a href="#run-a-kubernetes-job" class="md-nav__link">
|
|
9276
|
+
<span class="md-ellipsis">
|
|
9277
|
+
Run a Kubernetes Job
|
|
9278
|
+
</span>
|
|
9279
|
+
</a>
|
|
9280
|
+
|
|
9281
|
+
<nav class="md-nav" aria-label="Run a Kubernetes Job">
|
|
9282
|
+
<ul class="md-nav__list">
|
|
9283
|
+
|
|
9284
|
+
<li class="md-nav__item">
|
|
9285
|
+
<a href="#configure-a-new-job-queue-of-type-kubernetes" class="md-nav__link">
|
|
9286
|
+
<span class="md-ellipsis">
|
|
9287
|
+
Configure a New Job Queue of Type Kubernetes
|
|
9288
|
+
</span>
|
|
9289
|
+
</a>
|
|
9290
|
+
|
|
9291
|
+
</li>
|
|
9292
|
+
|
|
9293
|
+
<li class="md-nav__item">
|
|
9294
|
+
<a href="#assign-that-job-queue-to-a-job" class="md-nav__link">
|
|
9295
|
+
<span class="md-ellipsis">
|
|
9296
|
+
Assign that Job Queue to a Job
|
|
9297
|
+
</span>
|
|
9298
|
+
</a>
|
|
9299
|
+
|
|
9300
|
+
</li>
|
|
9301
|
+
|
|
9302
|
+
<li class="md-nav__item">
|
|
9303
|
+
<a href="#run-the-job" class="md-nav__link">
|
|
9117
9304
|
<span class="md-ellipsis">
|
|
9118
|
-
|
|
9305
|
+
Run the Job
|
|
9119
9306
|
</span>
|
|
9120
9307
|
</a>
|
|
9121
9308
|
|
|
9309
|
+
</li>
|
|
9310
|
+
|
|
9311
|
+
<li class="md-nav__item">
|
|
9312
|
+
<a href="#inspect-the-job-result" class="md-nav__link">
|
|
9313
|
+
<span class="md-ellipsis">
|
|
9314
|
+
Inspect the Job Result
|
|
9315
|
+
</span>
|
|
9316
|
+
</a>
|
|
9317
|
+
|
|
9318
|
+
</li>
|
|
9319
|
+
|
|
9320
|
+
<li class="md-nav__item">
|
|
9321
|
+
<a href="#running-a-scheduled-job" class="md-nav__link">
|
|
9322
|
+
<span class="md-ellipsis">
|
|
9323
|
+
Running a Scheduled Job
|
|
9324
|
+
</span>
|
|
9325
|
+
</a>
|
|
9326
|
+
|
|
9327
|
+
</li>
|
|
9328
|
+
|
|
9329
|
+
</ul>
|
|
9330
|
+
</nav>
|
|
9331
|
+
|
|
9122
9332
|
</li>
|
|
9123
9333
|
|
|
9124
9334
|
<li class="md-nav__item">
|
|
9125
|
-
<a href="#
|
|
9335
|
+
<a href="#after-running-a-job" class="md-nav__link">
|
|
9126
9336
|
<span class="md-ellipsis">
|
|
9127
|
-
|
|
9337
|
+
After Running a Job
|
|
9128
9338
|
</span>
|
|
9129
9339
|
</a>
|
|
9130
9340
|
|
|
@@ -9148,153 +9358,244 @@
|
|
|
9148
9358
|
|
|
9149
9359
|
|
|
9150
9360
|
|
|
9151
|
-
<h1 id="
|
|
9152
|
-
<p>This guide
|
|
9153
|
-
<h2 id="
|
|
9154
|
-
<p>
|
|
9155
|
-
<p>
|
|
9156
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>
|
|
9361
|
+
<h1 id="minikube-dev-environment-for-k8s-jobs">Minikube Dev Environment for K8s Jobs<a class="headerlink" href="#minikube-dev-environment-for-k8s-jobs" title="Permanent link">¶</a></h1>
|
|
9362
|
+
<p>Kubernetes Job Support is added in Nautobot v2.4.0. This documentation is a end-to-end development guide on topics from how to set up your local Kubernetes cluster with <a href="https://minikube.sigs.k8s.io/docs/">minikube</a> and how to run a Nautobot Job in a Kubernetes job pod.</p>
|
|
9363
|
+
<h2 id="preliminary-setup">Preliminary Setup<a class="headerlink" href="#preliminary-setup" title="Permanent link">¶</a></h2>
|
|
9364
|
+
<p>First you need to install minikube, go to the offical <a href="https://minikube.sigs.k8s.io/docs/start/">get started page</a> to learn how to download minikube for your specific OS and architecture.</p>
|
|
9365
|
+
<p>Once minikube is downloaded, create and start your minikube cluster with the following command:</p>
|
|
9366
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>minikube<span class="w"> </span>start
|
|
9157
9367
|
</code></pre></div>
|
|
9158
|
-
<p>
|
|
9159
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>
|
|
9160
|
-
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a
|
|
9161
|
-
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w">
|
|
9162
|
-
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>
|
|
9368
|
+
<p>You should see the following output:</p>
|
|
9369
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>😄<span class="w"> </span>minikube<span class="w"> </span>v1.34.0<span class="w"> </span>on<span class="w"> </span>Darwin<span class="w"> </span><span class="m">14</span>.4<span class="w"> </span><span class="o">(</span>arm64<span class="o">)</span>
|
|
9370
|
+
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>✨<span class="w"> </span>Using<span class="w"> </span>the<span class="w"> </span>docker<span class="w"> </span>driver<span class="w"> </span>based<span class="w"> </span>on<span class="w"> </span>existing<span class="w"> </span>profile
|
|
9371
|
+
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>👍<span class="w"> </span>Starting<span class="w"> </span><span class="s2">"minikube"</span><span class="w"> </span>primary<span class="w"> </span>control-plane<span class="w"> </span>node<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="s2">"minikube"</span><span class="w"> </span>cluster
|
|
9372
|
+
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>🚜<span class="w"> </span>Pulling<span class="w"> </span>base<span class="w"> </span>image<span class="w"> </span>v0.0.45<span class="w"> </span>...
|
|
9373
|
+
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>🏃<span class="w"> </span>Updating<span class="w"> </span>the<span class="w"> </span>running<span class="w"> </span>docker<span class="w"> </span><span class="s2">"minikube"</span><span class="w"> </span>container<span class="w"> </span>...
|
|
9374
|
+
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>🐳<span class="w"> </span>Preparing<span class="w"> </span>Kubernetes<span class="w"> </span>v1.31.0<span class="w"> </span>on<span class="w"> </span>Docker<span class="w"> </span><span class="m">27</span>.2.0<span class="w"> </span>...
|
|
9375
|
+
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a>🔎<span class="w"> </span>Verifying<span class="w"> </span>Kubernetes<span class="w"> </span>components...
|
|
9376
|
+
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="w"> </span>▪<span class="w"> </span>Using<span class="w"> </span>image<span class="w"> </span>gcr.io/k8s-minikube/storage-provisioner:v5
|
|
9377
|
+
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a>🌟<span class="w"> </span>Enabled<span class="w"> </span>addons:<span class="w"> </span>storage-provisioner,<span class="w"> </span>default-storageclass
|
|
9378
|
+
<a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a>🏄<span class="w"> </span>Done!<span class="w"> </span>kubectl<span class="w"> </span>is<span class="w"> </span>now<span class="w"> </span>configured<span class="w"> </span>to<span class="w"> </span>use<span class="w"> </span><span class="s2">"minikube"</span><span class="w"> </span>cluster<span class="w"> </span>and<span class="w"> </span><span class="s2">"default"</span><span class="w"> </span>namespace<span class="w"> </span>by<span class="w"> </span>default
|
|
9163
9379
|
</code></pre></div>
|
|
9164
|
-
<
|
|
9165
|
-
<p>
|
|
9166
|
-
<div class="
|
|
9167
|
-
<p class="admonition-title">Note</p>
|
|
9168
|
-
<p>To access the cluster from the Nautobot containers, remember to regenerate the <code>kubeconfig</code> file as described in the second step of this chapter.</p>
|
|
9169
|
-
</div>
|
|
9170
|
-
<p>To create a new Kind cluster:</p>
|
|
9171
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>kind<span class="w"> </span>create<span class="w"> </span>cluster<span class="w"> </span><span class="se">\</span>
|
|
9172
|
-
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="w"> </span>--name<span class="o">=</span>nautobot<span class="w"> </span><span class="se">\</span>
|
|
9173
|
-
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="w"> </span>--config<span class="o">=</span>development/kind-config.yaml<span class="w"> </span><span class="se">\</span>
|
|
9174
|
-
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span>--kubeconfig<span class="o">=</span>./development/kind-kube-config
|
|
9380
|
+
<p>Next you need <a href="https://kubernetes.io/docs/reference/kubectl/"><code>kubectl</code></a> to interact with the new cluster you just created. See <a href="https://kubernetes.io/docs/tasks/tools/#kubectl">Kubernetes official documentation</a> on how to download <code>kubectl</code> for your respective operating system.</p>
|
|
9381
|
+
<p>Once you have <code>kubectl</code> downloaded and installed, run the following command to ensure the version you installed is up-to-date:</p>
|
|
9382
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>kubectl<span class="w"> </span>version<span class="w"> </span>--client
|
|
9175
9383
|
</code></pre></div>
|
|
9176
|
-
<p>
|
|
9177
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>
|
|
9178
|
-
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>
|
|
9179
|
-
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a> ✓ Preparing nodes 📦
|
|
9180
|
-
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a> ✓ Writing configuration 📜
|
|
9181
|
-
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a> ✓ Starting control-plane 🕹️
|
|
9182
|
-
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a> ✓ Installing CNI 🔌
|
|
9183
|
-
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a> ✓ Installing StorageClass 💾
|
|
9184
|
-
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a>Set kubectl context to "kind-nautobot"
|
|
9185
|
-
<a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a>You can now use your cluster with:
|
|
9186
|
-
<a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a>
|
|
9187
|
-
<a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a>kubectl cluster-info --context kind-nautobot
|
|
9188
|
-
<a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a>
|
|
9189
|
-
<a id="__codelineno-3-13" name="__codelineno-3-13" href="#__codelineno-3-13"></a>Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂
|
|
9384
|
+
<p>You should see the following output:</p>
|
|
9385
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>Client<span class="w"> </span>Version:<span class="w"> </span>v1.31.2
|
|
9386
|
+
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>Kustomize<span class="w"> </span>Version:<span class="w"> </span>v5.4.2
|
|
9190
9387
|
</code></pre></div>
|
|
9191
|
-
<p>
|
|
9192
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>
|
|
9193
|
-
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span>--internal<span class="w"> </span><span class="se">\</span>
|
|
9194
|
-
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span>--name<span class="o">=</span>nautobot<span class="w"> </span><span class="se">\</span>
|
|
9195
|
-
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span>><span class="w"> </span>./development/kind-kube-config
|
|
9388
|
+
<p>You also need to check if your default service account is enabled to create jobs, you can check the permission by executing the following command:</p>
|
|
9389
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>kubectl<span class="w"> </span>auth<span class="w"> </span>can-i<span class="w"> </span>--as<span class="o">=</span>system:serviceaccount:default:default<span class="w"> </span>create<span class="w"> </span><span class="nb">jobs</span><span class="w"> </span>-n<span class="w"> </span>default
|
|
9196
9390
|
</code></pre></div>
|
|
9197
|
-
<
|
|
9198
|
-
<
|
|
9199
|
-
<div class="admonition note">
|
|
9200
|
-
<p class="admonition-title">Note</p>
|
|
9201
|
-
<p>These steps needs to be done every time you start the Nautobot containers.</p>
|
|
9202
|
-
</div>
|
|
9203
|
-
<p>Verify Nautobot containers are running:</p>
|
|
9204
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="c1"># Start Nautobot containers if they are not running</span>
|
|
9205
|
-
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>invoke<span class="w"> </span>start
|
|
9206
|
-
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a>
|
|
9207
|
-
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="c1"># Verify the containers are running</span>
|
|
9208
|
-
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a>docker<span class="w"> </span>ps
|
|
9391
|
+
<p>If the output from the above command is <code>yes</code>, then you are all good to go. However, if the output is <code>no</code>, then you will need to create a role binding to grant the default user appropriate permissions. You can achieve this by running the following command:</p>
|
|
9392
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>kubectl<span class="w"> </span>create<span class="w"> </span>rolebinding<span class="w"> </span>admin-namespace-default-new<span class="w"> </span>--clusterrole<span class="o">=</span>admin<span class="w"> </span>--serviceaccount<span class="o">=</span>default:default<span class="w"> </span>--namespace<span class="o">=</span>default
|
|
9209
9393
|
</code></pre></div>
|
|
9210
|
-
<
|
|
9211
|
-
<p
|
|
9212
|
-
<
|
|
9213
|
-
|
|
9214
|
-
<p>
|
|
9215
|
-
<
|
|
9216
|
-
<a id="__codelineno-6-
|
|
9217
|
-
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a>1f191e104357 local/nautobot-dev:local-py3.11 "watchmedo auto-rest…" 2 minutes ago Up 37 seconds (healthy) 0.0.0.0:8081->8080/tcp, [::]:8081->8080/tcp nautobot-celery_worker-1
|
|
9218
|
-
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a>d396ed398a4c local/nautobot-dev:local-py3.11 "/docker-entrypoint.…" 2 minutes ago Up 2 minutes (healthy) 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp nautobot-nautobot-1
|
|
9219
|
-
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a>...
|
|
9394
|
+
<p>This command will assign the admin role to your default service account in the namespace <code>default</code>. Check out Kubernetes <a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/">RBAC authorization page</a> to learn how to create more granular role and permission assignments.</p>
|
|
9395
|
+
<p>You can run the <code>kubectl auth can-i --as=system:serviceaccount:default:default create jobs -n default</code> again and this time the output should be <code>yes</code>.</p>
|
|
9396
|
+
<h2 id="starting-required-deployments">Starting Required Deployments<a class="headerlink" href="#starting-required-deployments" title="Permanent link">¶</a></h2>
|
|
9397
|
+
<h3 id="check-required-files">Check Required Files<a class="headerlink" href="#check-required-files" title="Permanent link">¶</a></h3>
|
|
9398
|
+
<p>If this is your first time installing <code>minikube</code> and creating a new cluster, there should be nothing running on the cluster yet. Assuming that your current working directory is in the <code>nautobot</code> folder, what you need to do is to confirm that you have all the deployment files that you need in the <code>/development/kubernetes</code> folder.</p>
|
|
9399
|
+
<p>You can confirm that by running the following command:</p>
|
|
9400
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>ls<span class="w"> </span>development/kubernetes
|
|
9220
9401
|
</code></pre></div>
|
|
9221
|
-
<p>
|
|
9222
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>
|
|
9402
|
+
<p>You should see the following output:</p>
|
|
9403
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>celery-beat-deployment.yaml<span class="w"> </span>media-root-persistentvolumeclaim.yaml<span class="w"> </span>nautobot-service.yaml
|
|
9404
|
+
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>db-deployment.yaml<span class="w"> </span>nautobot-cm1-configmap.yaml<span class="w"> </span>pgdata-nautobot-persistentvolumeclaim.yaml
|
|
9405
|
+
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>db-service.yaml<span class="w"> </span>nautobot-cm2-configmap.yaml<span class="w"> </span>redis-deployment.yaml
|
|
9406
|
+
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a>dev-env-configmap.yaml<span class="w"> </span>nautobot-deployment.yaml<span class="w"> </span>redis-service.yaml
|
|
9407
|
+
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a>docker-compose.min.yml
|
|
9223
9408
|
</code></pre></div>
|
|
9224
|
-
<p>You should see
|
|
9225
|
-
<
|
|
9226
|
-
<
|
|
9227
|
-
<
|
|
9228
|
-
<a id="__codelineno-8-
|
|
9409
|
+
<p>You should see several yaml files with post-fixes like <code>*-deployment.yaml</code>, <code>*-service.yaml</code>, <code>*-persistentvolumeclaim.yaml</code>, and <code>*-configmap.yaml</code>.</p>
|
|
9410
|
+
<h3 id="build-an-up-to-date-nautobot-docker-image">Build an up-to-date Nautobot Docker Image<a class="headerlink" href="#build-an-up-to-date-nautobot-docker-image" title="Permanent link">¶</a></h3>
|
|
9411
|
+
<p>An up-to-date Nautobot local Docker image named <code>local/nautobot-dev:local-${NAUTOBOT_VER}-py${PYTHON_VER}</code> is required before you start building your kubernetes deployments. The default <code>NAUTOBOT_VER</code> is set to <code>2.4</code> and the default <code>PYTHON_VER</code> is set to <code>3.12</code>. If you have a different version for either variable, you will need to replace every occurrence of <code>local/nautobot-dev:local-2.4-py3.12</code> in all of the <code>development/kubernetes/*.yaml</code> files to make sure that <code>minikube</code> picks up the correct local Nautobot image from your Docker environment.</p>
|
|
9412
|
+
<p>Run the following command to point your terminal to use the docker daemon inside minikube. This will ensure that your up-to-date local image named <code>local/nautobot-final-dev:local-${NAUTOBOT_VER}-py${PYTHON_VER}</code> is used when you build your kubernetes deployments.</p>
|
|
9413
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="nb">eval</span><span class="w"> </span><span class="k">$(</span>minikube<span class="w"> </span>docker-env<span class="k">)</span>
|
|
9229
9414
|
</code></pre></div>
|
|
9230
|
-
<p>
|
|
9231
|
-
<
|
|
9232
|
-
<
|
|
9415
|
+
<p>Now you can build your nautobot image locally using the <code>invoke build</code> command. After the build is complete, you are ready to build your kubernetes deployments.</p>
|
|
9416
|
+
<h3 id="starting-the-deployments-and-services">Starting the Deployments and Services<a class="headerlink" href="#starting-the-deployments-and-services" title="Permanent link">¶</a></h3>
|
|
9417
|
+
<p>Once you have confirmed that you have all the files listed above. You can start the required deployments and services:</p>
|
|
9418
|
+
<p>To start all deployments:</p>
|
|
9419
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>kubectl<span class="w"> </span>apply<span class="w"> </span>-f<span class="w"> </span><span class="s2">"development/kubernetes/*-deployment.yaml"</span>
|
|
9233
9420
|
</code></pre></div>
|
|
9234
|
-
<p>
|
|
9235
|
-
<
|
|
9236
|
-
<
|
|
9237
|
-
<
|
|
9238
|
-
<
|
|
9239
|
-
|
|
9240
|
-
|
|
9241
|
-
<
|
|
9242
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="c1"># Open shell in the running Nautobot container</span>
|
|
9243
|
-
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>invoke<span class="w"> </span>cli
|
|
9244
|
-
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>
|
|
9245
|
-
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="c1"># Install kubectl</span>
|
|
9246
|
-
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a>apt<span class="w"> </span>update
|
|
9247
|
-
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a>apt<span class="w"> </span>install<span class="w"> </span>kubernetes-client
|
|
9248
|
-
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a>
|
|
9249
|
-
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="c1"># Test the connection</span>
|
|
9250
|
-
<a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a><span class="nb">export</span><span class="w"> </span><span class="nv">KUBECONFIG</span><span class="o">=</span>/source/development/kind-kube-config
|
|
9251
|
-
<a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a>kubectl<span class="w"> </span>cluster-info
|
|
9421
|
+
<p>You should see the following output:</p>
|
|
9422
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>deployment.apps/celery-beat<span class="w"> </span>created
|
|
9423
|
+
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>deployment.apps/db<span class="w"> </span>created
|
|
9424
|
+
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>deployment.apps/nautobot<span class="w"> </span>created
|
|
9425
|
+
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a>deployment.apps/redis<span class="w"> </span>created
|
|
9426
|
+
</code></pre></div>
|
|
9427
|
+
<p>You can confirm the health of the deployment by running the following command:</p>
|
|
9428
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>kubectl<span class="w"> </span>get<span class="w"> </span>deployments
|
|
9252
9429
|
</code></pre></div>
|
|
9253
9430
|
<p>You should see the following output:</p>
|
|
9254
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9255
|
-
<a id="__codelineno-
|
|
9256
|
-
<a id="__codelineno-
|
|
9257
|
-
<a id="__codelineno-
|
|
9431
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>NAME<span class="w"> </span>READY<span class="w"> </span>UP-TO-DATE<span class="w"> </span>AVAILABLE<span class="w"> </span>AGE
|
|
9432
|
+
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>celery-beat<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>12m
|
|
9433
|
+
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a>db<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>12m
|
|
9434
|
+
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a>nautobot<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>12m
|
|
9435
|
+
<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a>redis<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>14m
|
|
9258
9436
|
</code></pre></div>
|
|
9259
|
-
<
|
|
9260
|
-
<
|
|
9261
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>invoke<span class="w"> </span>cli
|
|
9262
|
-
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
|
|
9263
|
-
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="nb">export</span><span class="w"> </span><span class="nv">KUBECONFIG</span><span class="o">=</span>/source/development/kind-kube-config
|
|
9264
|
-
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a>./development/create_k8s_job.py
|
|
9437
|
+
<p>To start all services:</p>
|
|
9438
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>kubectl<span class="w"> </span>apply<span class="w"> </span>-f<span class="w"> </span><span class="s2">"development/kubernetes/*-service.yaml"</span>
|
|
9265
9439
|
</code></pre></div>
|
|
9266
|
-
<
|
|
9267
|
-
<
|
|
9268
|
-
<
|
|
9269
|
-
</
|
|
9270
|
-
|
|
9271
|
-
<
|
|
9440
|
+
<p>You should see the following output:</p>
|
|
9441
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>service/db<span class="w"> </span>created
|
|
9442
|
+
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>service/nautobot<span class="w"> </span>created
|
|
9443
|
+
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a>service/redis<span class="w"> </span>created
|
|
9444
|
+
</code></pre></div>
|
|
9445
|
+
<p>You can confirm the health of the each service by running the following command:</p>
|
|
9446
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>kubectl<span class="w"> </span>get<span class="w"> </span>services
|
|
9272
9447
|
</code></pre></div>
|
|
9273
9448
|
<p>You should see the following output:</p>
|
|
9274
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9275
|
-
<a id="__codelineno-
|
|
9449
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>NAME<span class="w"> </span>TYPE<span class="w"> </span>CLUSTER-IP<span class="w"> </span>EXTERNAL-IP<span class="w"> </span>PORT<span class="o">(</span>S<span class="o">)</span><span class="w"> </span>AGE
|
|
9450
|
+
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>db<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.111.0.30<span class="w"> </span><none><span class="w"> </span><span class="m">5432</span>/TCP<span class="w"> </span>12m
|
|
9451
|
+
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a>kubernetes<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.96.0.1<span class="w"> </span><none><span class="w"> </span><span class="m">443</span>/TCP<span class="w"> </span>12m
|
|
9452
|
+
<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>nautobot<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.106.32.53<span class="w"> </span><none><span class="w"> </span><span class="m">8080</span>/TCP<span class="w"> </span>12m
|
|
9453
|
+
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a>redis<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.102.99.143<span class="w"> </span><none><span class="w"> </span><span class="m">6379</span>/TCP<span class="w"> </span>12m
|
|
9276
9454
|
</code></pre></div>
|
|
9277
|
-
<
|
|
9278
|
-
<p
|
|
9279
|
-
<p>
|
|
9280
|
-
|
|
9281
|
-
|
|
9282
|
-
<
|
|
9455
|
+
<h3 id="starting-the-configuration-maps-and-persistent-volume-claims">Starting the Configuration Maps and Persistent Volume Claims<a class="headerlink" href="#starting-the-configuration-maps-and-persistent-volume-claims" title="Permanent link">¶</a></h3>
|
|
9456
|
+
<p>Once you have started all deployments and services. You can start the required configuration maps and persistent volume claims:</p>
|
|
9457
|
+
<p>To start all configuration maps:</p>
|
|
9458
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>kubectl<span class="w"> </span>apply<span class="w"> </span>-f<span class="w"> </span><span class="s2">"development/kubernetes/*-configmap.yaml"</span>
|
|
9459
|
+
</code></pre></div>
|
|
9460
|
+
<p>You should see the following output:</p>
|
|
9461
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>configmap/dev-env<span class="w"> </span>created
|
|
9462
|
+
<a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a>configmap/nautobot-cm1<span class="w"> </span>created
|
|
9463
|
+
<a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a>configmap/nautobot-cm2<span class="w"> </span>created
|
|
9283
9464
|
</code></pre></div>
|
|
9284
|
-
<p>
|
|
9285
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9465
|
+
<p>You can confirm that those configuration maps are created by running the following command:</p>
|
|
9466
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>kubectl<span class="w"> </span>get<span class="w"> </span>configmaps
|
|
9286
9467
|
</code></pre></div>
|
|
9287
|
-
<
|
|
9288
|
-
<
|
|
9289
|
-
<
|
|
9290
|
-
</
|
|
9291
|
-
<
|
|
9292
|
-
|
|
9468
|
+
<p>You should see the following output:</p>
|
|
9469
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>NAME<span class="w"> </span>DATA<span class="w"> </span>AGE
|
|
9470
|
+
<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>dev-env<span class="w"> </span><span class="m">32</span><span class="w"> </span>24s
|
|
9471
|
+
<a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a>nautobot-cm1<span class="w"> </span><span class="m">1</span><span class="w"> </span>24s
|
|
9472
|
+
<a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a>nautobot-cm2<span class="w"> </span><span class="m">1</span><span class="w"> </span>24s
|
|
9473
|
+
</code></pre></div>
|
|
9474
|
+
<p>To start all persistent volume claims:</p>
|
|
9475
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>kubectl<span class="w"> </span>apply<span class="w"> </span>-f<span class="w"> </span><span class="s2">"development/kubernetes/*-persistentvolumeclaim.yaml"</span>
|
|
9476
|
+
</code></pre></div>
|
|
9477
|
+
<p>You should see the following output:</p>
|
|
9478
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>persistentvolumeclaim/media-root<span class="w"> </span>created
|
|
9479
|
+
<a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a>persistentvolumeclaim/pgdata-nautobot<span class="w"> </span>created
|
|
9480
|
+
</code></pre></div>
|
|
9481
|
+
<p>You can confirm that those persistent volume claims are created by running the following command:</p>
|
|
9482
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>kubectl<span class="w"> </span>get<span class="w"> </span>persistentvolumeclaims
|
|
9483
|
+
</code></pre></div>
|
|
9484
|
+
<p>You should see the following output:</p>
|
|
9485
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>NAME<span class="w"> </span>STATUS<span class="w"> </span>VOLUME<span class="w"> </span>CAPACITY<span class="w"> </span>ACCESS<span class="w"> </span>MODES<span class="w"> </span>STORAGECLASS<span class="w"> </span>VOLUMEATTRIBUTESCLASS<span class="w"> </span>AGE
|
|
9486
|
+
<a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a>media-root<span class="w"> </span>Bound<span class="w"> </span>pvc-011f484b-2ccf-4fe0-953b-289a13ad0480<span class="w"> </span>200Mi<span class="w"> </span>RWO<span class="w"> </span>standard<span class="w"> </span><unset><span class="w"> </span>2m35s
|
|
9487
|
+
<a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a>pgdata-nautobot<span class="w"> </span>Bound<span class="w"> </span>pvc-5954eb3f-75e3-4f6b-9b9c-a91e40ea96bf<span class="w"> </span>200Mi<span class="w"> </span>RWO<span class="w"> </span>standard<span class="w"> </span><unset><span class="w"> </span>2m35s
|
|
9488
|
+
</code></pre></div>
|
|
9489
|
+
<p>To confirm all required kubernetes entities are up and running, run the following command:</p>
|
|
9490
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>kubectl<span class="w"> </span>get<span class="w"> </span>all
|
|
9491
|
+
</code></pre></div>
|
|
9492
|
+
<p>You should see the following output, note that pods are automatically created when you create deployments:</p>
|
|
9493
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>NAME<span class="w"> </span>READY<span class="w"> </span>STATUS<span class="w"> </span>RESTARTS<span class="w"> </span>AGE
|
|
9494
|
+
<a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a>pod/celery-beat-6fb67477b7-rsw62<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>30m
|
|
9495
|
+
<a id="__codelineno-26-3" name="__codelineno-26-3" href="#__codelineno-26-3"></a>pod/db-8687b48964-gtvtc<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>30m
|
|
9496
|
+
<a id="__codelineno-26-4" name="__codelineno-26-4" href="#__codelineno-26-4"></a>pod/nautobot-679bdc765-pl2ld<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>30m
|
|
9497
|
+
<a id="__codelineno-26-5" name="__codelineno-26-5" href="#__codelineno-26-5"></a>pod/redis-7cc58577c-tl5sq<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>30m
|
|
9498
|
+
<a id="__codelineno-26-6" name="__codelineno-26-6" href="#__codelineno-26-6"></a>
|
|
9499
|
+
<a id="__codelineno-26-7" name="__codelineno-26-7" href="#__codelineno-26-7"></a>NAME<span class="w"> </span>TYPE<span class="w"> </span>CLUSTER-IP<span class="w"> </span>EXTERNAL-IP<span class="w"> </span>PORT<span class="o">(</span>S<span class="o">)</span><span class="w"> </span>AGE
|
|
9500
|
+
<a id="__codelineno-26-8" name="__codelineno-26-8" href="#__codelineno-26-8"></a>service/db<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.111.0.30<span class="w"> </span><none><span class="w"> </span><span class="m">5432</span>/TCP<span class="w"> </span>30m
|
|
9501
|
+
<a id="__codelineno-26-9" name="__codelineno-26-9" href="#__codelineno-26-9"></a>service/kubernetes<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.96.0.1<span class="w"> </span><none><span class="w"> </span><span class="m">443</span>/TCP<span class="w"> </span>30m
|
|
9502
|
+
<a id="__codelineno-26-10" name="__codelineno-26-10" href="#__codelineno-26-10"></a>service/nautobot<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.106.32.53<span class="w"> </span><none><span class="w"> </span><span class="m">8080</span>/TCP<span class="w"> </span>30m
|
|
9503
|
+
<a id="__codelineno-26-11" name="__codelineno-26-11" href="#__codelineno-26-11"></a>service/redis<span class="w"> </span>ClusterIP<span class="w"> </span><span class="m">10</span>.102.99.143<span class="w"> </span><none><span class="w"> </span><span class="m">6379</span>/TCP<span class="w"> </span>30m
|
|
9504
|
+
<a id="__codelineno-26-12" name="__codelineno-26-12" href="#__codelineno-26-12"></a>
|
|
9505
|
+
<a id="__codelineno-26-13" name="__codelineno-26-13" href="#__codelineno-26-13"></a>NAME<span class="w"> </span>READY<span class="w"> </span>UP-TO-DATE<span class="w"> </span>AVAILABLE<span class="w"> </span>AGE
|
|
9506
|
+
<a id="__codelineno-26-14" name="__codelineno-26-14" href="#__codelineno-26-14"></a>deployment.apps/celery-beat<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>30m
|
|
9507
|
+
<a id="__codelineno-26-15" name="__codelineno-26-15" href="#__codelineno-26-15"></a>deployment.apps/db<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>30m
|
|
9508
|
+
<a id="__codelineno-26-16" name="__codelineno-26-16" href="#__codelineno-26-16"></a>deployment.apps/nautobot<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>30m
|
|
9509
|
+
<a id="__codelineno-26-17" name="__codelineno-26-17" href="#__codelineno-26-17"></a>deployment.apps/redis<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>30m
|
|
9510
|
+
</code></pre></div>
|
|
9511
|
+
<h3 id="port-forward-to-local-host">Port Forward to Local Host<a class="headerlink" href="#port-forward-to-local-host" title="Permanent link">¶</a></h3>
|
|
9512
|
+
<p>You can use the <code>port-forward</code> command from <code>kubectl</code> to make your Nautobot instance on the kubernetes cluster accessible in <code>localhost:8080</code>:</p>
|
|
9513
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>kubectl<span class="w"> </span>port-forward<span class="w"> </span><nautobot-pod-name><span class="w"> </span><span class="m">8080</span>:8080
|
|
9514
|
+
</code></pre></div>
|
|
9515
|
+
<p>The output should be:</p>
|
|
9516
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>Forwarding<span class="w"> </span>from<span class="w"> </span><span class="m">127</span>.0.0.1:8080<span class="w"> </span>-><span class="w"> </span><span class="m">8080</span>
|
|
9517
|
+
<a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a>Forwarding<span class="w"> </span>from<span class="w"> </span><span class="o">[</span>::1<span class="o">]</span>:8080<span class="w"> </span>-><span class="w"> </span><span class="m">8080</span>
|
|
9518
|
+
<a id="__codelineno-28-3" name="__codelineno-28-3" href="#__codelineno-28-3"></a>Handling<span class="w"> </span>connection<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="m">8080</span>
|
|
9519
|
+
</code></pre></div>
|
|
9520
|
+
<p>Now go to your web browser and navigate to <code>localhost:8080</code>. You should see your Nautobot instance running.</p>
|
|
9521
|
+
<p><img alt="K8s Nautobot Login" src="../../media/development/core/kubernetes/k8s_nautobot_login.png" /></p>
|
|
9522
|
+
<h2 id="run-a-kubernetes-job">Run a Kubernetes Job<a class="headerlink" href="#run-a-kubernetes-job" title="Permanent link">¶</a></h2>
|
|
9523
|
+
<h3 id="configure-a-new-job-queue-of-type-kubernetes">Configure a New Job Queue of Type Kubernetes<a class="headerlink" href="#configure-a-new-job-queue-of-type-kubernetes" title="Permanent link">¶</a></h3>
|
|
9524
|
+
<p>Go to the Navigation bar on your left hand side and look at the Jobs Section. You should see Job Queues at the very end of the section. Click on the plus button next to the Job Queues entry and this will take you to a form for creating a new job queue.</p>
|
|
9525
|
+
<p><img alt="K8s Job Queue Add" src="../../media/development/core/kubernetes/k8s_job_queue_add.png" /></p>
|
|
9526
|
+
<p>You can give the name "kubernetes" to the new job queue and select "Kubernetes" from the Queue Type dropdown.</p>
|
|
9527
|
+
<p><img alt="K8s Job Queue Config" src="../../media/development/core/kubernetes/k8s_job_queue_config.png" /></p>
|
|
9528
|
+
<p>Scroll down and click on the create button. A new Job Queue with name "kubernetes" and with type Kubernetes should be created.</p>
|
|
9529
|
+
<p><img alt="K8s Job Queue Detail" src="../../media/development/core/kubernetes/k8s_job_queue.png" /></p>
|
|
9530
|
+
<h3 id="assign-that-job-queue-to-a-job">Assign that Job Queue to a Job<a class="headerlink" href="#assign-that-job-queue-to-a-job" title="Permanent link">¶</a></h3>
|
|
9531
|
+
<p>Go to a Job's edit form and assign the newly created kubernetes job queue to the job. You will be using the "Export Object List" system job here.</p>
|
|
9532
|
+
<p><img alt="K8s Job Edit Button" src="../../media/development/core/kubernetes/k8s_job_edit_button.png" /></p>
|
|
9533
|
+
<p>Check the override default value checkbox on the <code>Job Queues</code> field and select the kubernetes job queue from the dropdown.
|
|
9534
|
+
Check the override default value checkbox on the <code>Default Job Queue</code> field and select the kubernetes job queue from the dropdown.</p>
|
|
9535
|
+
<p><img alt="K8s Job Edit" src="../../media/development/core/kubernetes/k8s_job_edit.png" /></p>
|
|
9536
|
+
<p>Click on the update button when you are finished.</p>
|
|
9537
|
+
<h3 id="run-the-job">Run the Job<a class="headerlink" href="#run-the-job" title="Permanent link">¶</a></h3>
|
|
9538
|
+
<p>After clicking on the update button after the previous step, you should be redirected to the table of jobs. Click on the link that says "Export Object List". This should take you to the Job Run Form.</p>
|
|
9539
|
+
<p><img alt="K8s Run Job" src="../../media/development/core/kubernetes/k8s_run_job.png" /></p>
|
|
9540
|
+
<p>Select an option for the Content Type field dropdown and notice that the Job queue is already filled out with the kubernetes job queue that you assigned to this job from previous steps. So you do not need to make any changes there.</p>
|
|
9541
|
+
<p><img alt="K8s Run Job Form" src="../../media/development/core/kubernetes/k8s_job_run_form.png" /></p>
|
|
9542
|
+
<p>Click on the "Run Job Now" button and you should be directed to the job result page.</p>
|
|
9543
|
+
<p><img alt="K8s Job Result Pending" src="../../media/development/core/kubernetes/k8s_job_result_pending.png" /></p>
|
|
9544
|
+
<h3 id="inspect-the-job-result">Inspect the Job Result<a class="headerlink" href="#inspect-the-job-result" title="Permanent link">¶</a></h3>
|
|
9545
|
+
<p>You can inspect the job result and the job logs in this page. Notice the two job log entries that reads something like "Creating job pod (pod-name) in namespace default" and "Reading job pod (pod-name) in namespace default". Those entries indicate that a Kubernetes Job pod was executing the job for you.</p>
|
|
9546
|
+
<p><img alt="K8s Job Result Completed" src="../../media/development/core/kubernetes/k8s_job_result_completed.png" /></p>
|
|
9547
|
+
<h3 id="running-a-scheduled-job">Running a Scheduled Job<a class="headerlink" href="#running-a-scheduled-job" title="Permanent link">¶</a></h3>
|
|
9548
|
+
<p>You can run scheduled jobs as well. In order to run scheduled jobs, you do need celery beat which should already be running from previous steps. To confirm that the celery beat is running, you need to retrieve the celery beat pod name by running the command <code>kubectl get pods</code>. You should see the following output or something similar, copy the pod name with prefix <code>celery-beat-*</code>.</p>
|
|
9549
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>NAME<span class="w"> </span>READY<span class="w"> </span>STATUS<span class="w"> </span>RESTARTS<span class="w"> </span>AGE
|
|
9550
|
+
<a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a>celery-beat-6fb67477b7-rsw62<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>10m
|
|
9551
|
+
<a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a>db-8687b48964-gtvtc<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>10m
|
|
9552
|
+
<a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a>nautobot-679bdc765-pl2ld<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>10m
|
|
9553
|
+
<a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a>redis-7cc58577c-tl5sq<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>10m
|
|
9554
|
+
</code></pre></div>
|
|
9555
|
+
<p>you can run the command <code>kubectl logs <celery-beat-pod-name> -f</code> and you should see the following output or something similar:</p>
|
|
9556
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>LocalTime<span class="w"> </span>-><span class="w"> </span><span class="m">2024</span>-11-20<span class="w"> </span><span class="m">18</span>:49:41
|
|
9557
|
+
<a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a>Configuration<span class="w"> </span>->
|
|
9558
|
+
<a id="__codelineno-30-3" name="__codelineno-30-3" href="#__codelineno-30-3"></a><span class="w"> </span>.<span class="w"> </span>broker<span class="w"> </span>-><span class="w"> </span>redis://:**@redis:6379/0
|
|
9559
|
+
<a id="__codelineno-30-4" name="__codelineno-30-4" href="#__codelineno-30-4"></a><span class="w"> </span>.<span class="w"> </span>loader<span class="w"> </span>-><span class="w"> </span>celery.loaders.app.AppLoader
|
|
9560
|
+
<a id="__codelineno-30-5" name="__codelineno-30-5" href="#__codelineno-30-5"></a><span class="w"> </span>.<span class="w"> </span>scheduler<span class="w"> </span>-><span class="w"> </span>nautobot.core.celery.schedulers.NautobotDatabaseScheduler
|
|
9561
|
+
<a id="__codelineno-30-6" name="__codelineno-30-6" href="#__codelineno-30-6"></a>
|
|
9562
|
+
<a id="__codelineno-30-7" name="__codelineno-30-7" href="#__codelineno-30-7"></a><span class="w"> </span>.<span class="w"> </span>logfile<span class="w"> </span>-><span class="w"> </span><span class="o">[</span>stderr<span class="o">]</span>@%INFO
|
|
9563
|
+
<a id="__codelineno-30-8" name="__codelineno-30-8" href="#__codelineno-30-8"></a><span class="w"> </span>.<span class="w"> </span>maxinterval<span class="w"> </span>-><span class="w"> </span><span class="m">5</span>.00<span class="w"> </span>seconds<span class="w"> </span><span class="o">(</span>5s<span class="o">)</span>
|
|
9564
|
+
<a id="__codelineno-30-9" name="__codelineno-30-9" href="#__codelineno-30-9"></a><span class="o">[</span><span class="m">2024</span>-11-20<span class="w"> </span><span class="m">18</span>:49:41,161:<span class="w"> </span>INFO/MainProcess<span class="o">]</span><span class="w"> </span>beat:<span class="w"> </span>Starting...
|
|
9565
|
+
</code></pre></div>
|
|
9566
|
+
<p>Now you are going to create a new Scheduled Export Object List Job. Starting from Nautobot homepage, you can go to the Jobs dropdown on the left navigation menu and navigate to the job list view.</p>
|
|
9567
|
+
<p><img alt="K8s Job List Nav" src="../../media/development/core/kubernetes/k8s_job_list_nav.png" /></p>
|
|
9568
|
+
<p><img alt="K8s Job List View" src="../../media/development/core/kubernetes/k8s_job_list_view.png" /></p>
|
|
9569
|
+
<p>Click on the Run/Schedule link for Export Object List Job.</p>
|
|
9570
|
+
<p><img alt="K8s Run Job" src="../../media/development/core/kubernetes/k8s_run_job.png" /></p>
|
|
9571
|
+
<p>Fill in the data shown below (for the "Starting date and time" field, pick a date and time that is close to the current date and time) and click on the "Schedule Job" button on the bottom right.</p>
|
|
9572
|
+
<p><img alt="K8s Run Scheduled Job Form" src="../../media/development/core/kubernetes/k8s_run_scheduled_job_form.png" /></p>
|
|
9573
|
+
<p>To confirm that the Scheduled Job is running, you go back to the terminal that was logging celery beat. You should see the following logs or something similar:</p>
|
|
9574
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a><span class="o">[</span><span class="m">2024</span>-11-21<span class="w"> </span><span class="m">02</span>:09:57,756:<span class="w"> </span>INFO/MainProcess<span class="o">]</span><span class="w"> </span>DatabaseScheduler:<span class="w"> </span>Schedule<span class="w"> </span>changed.
|
|
9575
|
+
<a id="__codelineno-31-2" name="__codelineno-31-2" href="#__codelineno-31-2"></a><span class="o">[</span><span class="m">2024</span>-11-21<span class="w"> </span><span class="m">02</span>:09:57,774:<span class="w"> </span>INFO/MainProcess<span class="o">]</span><span class="w"> </span>Scheduler:<span class="w"> </span>Sending<span class="w"> </span>due<span class="w"> </span>task<span class="w"> </span>Export<span class="w"> </span>Object<span class="w"> </span>List<span class="w"> </span>Hourly_85413d3f-1342-4adf-8d80-11e740ebb907<span class="w"> </span><span class="o">(</span>nautobot.extras.jobs.run_job<span class="o">)</span>
|
|
9576
|
+
<a id="__codelineno-31-3" name="__codelineno-31-3" href="#__codelineno-31-3"></a><span class="m">02</span>:09:57.782<span class="w"> </span>INFO<span class="w"> </span>nautobot.extras.utils<span class="w"> </span>utils.py<span class="w"> </span>run_kubernetes_job_and_return_job_result<span class="o">()</span><span class="w"> </span>:
|
|
9577
|
+
<a id="__codelineno-31-4" name="__codelineno-31-4" href="#__codelineno-31-4"></a><span class="w"> </span>Creating<span class="w"> </span>job<span class="w"> </span>pod<span class="w"> </span>nautobot-job<span class="w"> </span><span class="k">in</span><span class="w"> </span>namespace<span class="w"> </span>default
|
|
9578
|
+
<a id="__codelineno-31-5" name="__codelineno-31-5" href="#__codelineno-31-5"></a><span class="o">[</span><span class="m">2024</span>-11-21<span class="w"> </span><span class="m">02</span>:09:57,782:<span class="w"> </span>INFO/MainProcess<span class="o">]</span><span class="w"> </span>Creating<span class="w"> </span>job<span class="w"> </span>pod<span class="w"> </span>nautobot-job<span class="w"> </span><span class="k">in</span><span class="w"> </span>namespace<span class="w"> </span>default
|
|
9579
|
+
<a id="__codelineno-31-6" name="__codelineno-31-6" href="#__codelineno-31-6"></a><span class="m">02</span>:09:57.802<span class="w"> </span>INFO<span class="w"> </span>nautobot.extras.utils<span class="w"> </span>utils.py<span class="w"> </span>run_kubernetes_job_and_return_job_result<span class="o">()</span><span class="w"> </span>:
|
|
9580
|
+
<a id="__codelineno-31-7" name="__codelineno-31-7" href="#__codelineno-31-7"></a><span class="w"> </span>Reading<span class="w"> </span>job<span class="w"> </span>pod<span class="w"> </span>nautobot-job<span class="w"> </span><span class="k">in</span><span class="w"> </span>namespace<span class="w"> </span>default
|
|
9581
|
+
<a id="__codelineno-31-8" name="__codelineno-31-8" href="#__codelineno-31-8"></a><span class="o">[</span><span class="m">2024</span>-11-21<span class="w"> </span><span class="m">02</span>:09:57,802:<span class="w"> </span>INFO/MainProcess<span class="o">]</span><span class="w"> </span>Reading<span class="w"> </span>job<span class="w"> </span>pod<span class="w"> </span>nautobot-job<span class="w"> </span><span class="k">in</span><span class="w"> </span>namespace<span class="w"> </span>default
|
|
9582
|
+
<a id="__codelineno-31-9" name="__codelineno-31-9" href="#__codelineno-31-9"></a><span class="o">[</span><span class="m">2024</span>-11-21<span class="w"> </span><span class="m">02</span>:09:57,837:<span class="w"> </span>INFO/MainProcess<span class="o">]</span><span class="w"> </span>DatabaseScheduler:<span class="w"> </span>Schedule<span class="w"> </span>changed.
|
|
9583
|
+
</code></pre></div>
|
|
9584
|
+
<p>You can also confirm if the job is running or is completed by running <code>kubectl get jobs</code> and <code>kubectl get pods</code> in another terminal.</p>
|
|
9585
|
+
<p>Go back to your browser and click on the Job Results entry from the Jobs navigation menu.</p>
|
|
9586
|
+
<p><img alt="K8s Job Result Navigation" src="../../media/development/core/kubernetes/k8s_job_result_nav.png" /></p>
|
|
9587
|
+
<p>Inspect the Job Result</p>
|
|
9588
|
+
<p><img alt="K8s Scheduled Job Job Result" src="../../media/development/core/kubernetes/k8s_scheduled_job_result.png" /></p>
|
|
9589
|
+
<h2 id="after-running-a-job">After Running a Job<a class="headerlink" href="#after-running-a-job" title="Permanent link">¶</a></h2>
|
|
9590
|
+
<p>Good news is that there is nothing for you to do after running a kubernetes job. The job pod with prefix <code>nautobot-job-pod-*</code> will clean up itself. Running <code>kubectl get pods</code> to confirm that <code>nautobot-job-pod-<pod_id></code> no longer exists.</p>
|
|
9591
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>NAME<span class="w"> </span>READY<span class="w"> </span>STATUS<span class="w"> </span>RESTARTS<span class="w"> </span>AGE
|
|
9592
|
+
<a id="__codelineno-32-2" name="__codelineno-32-2" href="#__codelineno-32-2"></a>celery-beat-6fb67477b7-rsw62<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>1h
|
|
9593
|
+
<a id="__codelineno-32-3" name="__codelineno-32-3" href="#__codelineno-32-3"></a>db-8687b48964-gtvtc<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>1h
|
|
9594
|
+
<a id="__codelineno-32-4" name="__codelineno-32-4" href="#__codelineno-32-4"></a>nautobot-679bdc765-pl2ld<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>1h
|
|
9595
|
+
<a id="__codelineno-32-5" name="__codelineno-32-5" href="#__codelineno-32-5"></a>redis-7cc58577c-tl5sq<span class="w"> </span><span class="m">1</span>/1<span class="w"> </span>Running<span class="w"> </span><span class="m">0</span><span class="w"> </span>1h
|
|
9293
9596
|
</code></pre></div>
|
|
9294
|
-
<
|
|
9295
|
-
<
|
|
9296
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>kind<span class="w"> </span>delete<span class="w"> </span>cluster<span class="w"> </span>--name<span class="o">=</span>nautobot
|
|
9297
|
-
<a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a>rm<span class="w"> </span>development/kind-kube-config
|
|
9597
|
+
<p>You can also run <code>kubectl get jobs</code> to confirm that <code>nautobot-job-<pod_id></code> no longer exists as well.</p>
|
|
9598
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>No<span class="w"> </span>resources<span class="w"> </span>found<span class="w"> </span><span class="k">in</span><span class="w"> </span>default<span class="w"> </span>namespace.
|
|
9298
9599
|
</code></pre></div>
|
|
9299
9600
|
|
|
9300
9601
|
|
|
@@ -9442,7 +9743,7 @@
|
|
|
9442
9743
|
<script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
9443
9744
|
|
|
9444
9745
|
|
|
9445
|
-
<script src="../../assets/javascripts/bundle.
|
|
9746
|
+
<script src="../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
|
|
9446
9747
|
|
|
9447
9748
|
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
|
9448
9749
|
|