github.com
Open in
urlscan Pro
140.82.121.4
Public Scan
Submitted URL: http://navig8.dev/
Effective URL: https://github.com/navig8s/navig8
Submission: On November 29 via api from US — Scanned from DE
Effective URL: https://github.com/navig8s/navig8
Submission: On November 29 via api from US — Scanned from DE
Form analysis
1 forms found in the DOMGET /navig8s/navig8/search
<form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="537133370" data-scoped-search-url="/navig8s/navig8/search" data-owner-scoped-search-url="/orgs/navig8s/search"
data-unscoped-search-url="/search" data-turbo="false" action="/navig8s/navig8/search" accept-charset="UTF-8" method="get">
<label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">
<input type="text" class="form-control js-site-search-focus header-search-input jump-to-field js-jump-to-field js-site-search-field is-clearable" data-hotkey="s,/" name="q" data-test-selector="nav-search-input" placeholder="Search"
data-unscoped-placeholder="Search GitHub" data-scoped-placeholder="Search" autocapitalize="off" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search"
data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off">
<input type="hidden" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" value="kTu54FRwKW49bEj8RYR8hUZPvTmNPPy8ZBpxDWwkg6IgtY6znmxknqHYDEA7GraaNErNoWLQEfvJedkvllrAgQ==">
<input type="hidden" class="js-site-search-type-field" name="type">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1 header-search-key-slash">
<path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path>
<path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path>
</svg>
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
<ul class="d-none js-jump-to-suggestions-template-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
</a>
</li>
</ul>
<ul class="d-none js-jump-to-no-results-template-container">
<li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
<span class="color-fg-muted">No suggested jump to results</span>
</li>
</ul>
<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
</a>
</li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this organization">
In this organization
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
</a>
</li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
</a>
</li>
</ul>
</div>
</label>
</form>
Text Content
Skip to content Toggle navigation Sign up * Product * Actions Automate any workflow * Packages Host and manage packages * Security Find and fix vulnerabilities * Codespaces Instant dev environments * Copilot Write better code with AI * Code review Manage code changes * Issues Plan and track work * Discussions Collaborate outside of code * Explore * All features * Documentation * GitHub Skills * Blog * Solutions * For * Enterprise * Teams * Startups * Compare all * By Solution * CI/CD & Automation * DevOps * DevSecOps * Case Studies * Customer Stories * Resources * Open Source * GitHub Sponsors Fund open source developers * The ReadME Project GitHub community articles * Repositories * Topics * Trending * Collections * Pricing * In this repository All GitHub ↵ Jump to ↵ * No suggested jump to results * In this repository All GitHub ↵ Jump to ↵ * In this organization All GitHub ↵ Jump to ↵ * In this repository All GitHub ↵ Jump to ↵ Sign in Sign up {{ message }} navig8s / navig8 Public * Notifications * Fork 0 * Star 2 Simplify and Visualize Helm Deployments LICENSE Apache-2.0, Unknown licenses found LICENSES FOUND Apache-2.0 LICENSE Unknown license-banner.txt 2 stars 0 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights NAVIG8S/NAVIG8 This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags NAME ALREADY IN USE A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 1 tag Go to file Code * Local * Codespaces * Clone HTTPS GitHub CLI Use Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP SIGN IN REQUIRED Please sign in to use Codespaces. LAUNCHING GITHUB DESKTOP If nothing happens, download GitHub Desktop and try again. LAUNCHING GITHUB DESKTOP If nothing happens, download GitHub Desktop and try again. LAUNCHING XCODE If nothing happens, download Xcode and try again. LAUNCHING VISUAL STUDIO CODE Your codespace will open once ready. There was a problem preparing your codespace, please try again. LATEST COMMIT Nikita Epshtein and Nikita Epshtein Added license banner to generated build … 2e2cd9d Nov 22, 2022 Added license banner to generated build 2e2cd9d GIT STATS * 55 commits FILES Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows Support latest tag for docker image Nov 11, 2022 docker Hotfix: static build Nov 16, 2022 docs/how_parsing_works Makefile, README and Documentation (#6) Oct 21, 2022 src Docker support (#9) Nov 11, 2022 .env.template Docker support (#9) Nov 11, 2022 .eslintrc.cjs Docker support (#9) Nov 11, 2022 .gitignore Hotfix: static build Nov 16, 2022 .prettierrc Docker support (#9) Nov 11, 2022 LICENSE Added LICENSE Oct 24, 2022 README.md Small fix in the README Nov 16, 2022 index.html Docker support (#9) Nov 11, 2022 jest.config.js Docker support (#9) Nov 11, 2022 license-banner.txt Added license banner to generated build Nov 22, 2022 light.css Docker support (#9) Nov 11, 2022 logo-icon-navig8.svg Makefile, README and Documentation (#6) Oct 21, 2022 package.json Added license banner to generated build Nov 22, 2022 pnpm-lock.yaml Added license banner to generated build Nov 22, 2022 tsconfig.json Docker support (#9) Nov 11, 2022 tsconfig.node.json Docker support (#9) Nov 11, 2022 vite.config.ts Added license banner to generated build Nov 22, 2022 View code Navig8 Simplify and Visualize Helm Deployments Table of contents Assumptions Local development Environment requirements Starting from scratch Customization options Environment variables: Custom logo Themization Overwriting CSS rules Deployment as FE static An example of deployment flow Deployment as Docker container An example of running docker image locally Proxy to bypass CORS & security notes Examples Roadmap README.MD NAVIG8 SIMPLIFY AND VISUALIZE HELM DEPLOYMENTS The Navig8 web user interface simplifies Kubernetes application deployment by guiding users through Helm Chart values. Its logic is executed only on frontend side which guarantees no sensitive data filled in its form will ever be implicitly processed somewhere outside user's computer. -------------------------------------------------------------------------------- TABLE OF CONTENTS * Assumptions * Local development * Environment requirements * Starting from scratch * Customization options * Environment variables: * Custom logo * Themization * Overwriting CSS rules * Deployment as FE static * An example of deployment flow * Deployment as Docker container * An example of running docker image locally * Proxy to bypass CORS & security notes * Examples * Roadmap ASSUMPTIONS * Navig8's initial design is lightweight: all functionality is in the web client for easy web hosting. * There is no persistence for values or back-end requirements, see the Roadmap section for more on this topic. * The target Helm Chart repository is network accessible to the web client running Navig8. * The target Helm Chart has values.schema.json * OPTIONAL: the target Helm Chart has a README.md. * Navig8 leverages existing Helm Chart value specifications, see the Roadmap section for more on this topic. * Navig8 provides helm commands for execution. LOCAL DEVELOPMENT ENVIRONMENT REQUIREMENTS * Node.js with version ^16 * pnpm with version ^7 STARTING FROM SCRATCH pnpm install cp .env.template .env.development.local # Add values for required variables there. Each variable is documented inside the file. pnpm dev CUSTOMIZATION OPTIONS ENVIRONMENT VARIABLES: Name Required Description Default NAVIG8_REPO_URL * Url to the helm repository that is usually used in helm add repo command NAVIG8_REPO_ENTRY * Entry is a unique key of the entries hash map ( https://helm.sh/docs/topics/chart_repository/#the-index-file ) NAVIG8_REPO_NAME * The name of the repo used in the command helm repo add $NAVIG8_REPO_NAME $NAVIG8_REPO_URL NAVIG8_PREDEFINED_NAMESPACE The k8s namespace that will be created and used for the helm installation NAVIG8_DOCUMENTATION_URL Link to the documentation for the specified helm chart that will be provided to the user NAVIG8_USE_PROXY Boolean-like string ("false" or "true"). Used in development and Docker env to tell whether a proxy should be created to bypass CORS headers or not "false" NAVIG8_COPYRIGHT A string that will be shown on the right of the <footer> element. If you want to add a dynamic year that will represent year at the momet - add {year} to the string. Example: ©{year} Kasten by Veeam® NAVIG8_FAVICON Icon that can be usually seen inside the tab of the browser and is usually important for crawlers of social media, chat applications, and search engines. NAVIG8_SEO_TITLE A small string that represents the content of the page that can be usually seen inside the tab of the browser and is usually important for crawlers of social media, chat applications, and search engines. NAVIG8_METAS An array as JSON string with data for custom <meta> elements in html The structure is (Typescript definition): type Metas = Array<{name: string, content: string}> Example: [{"name": "description", "content": "This is my description"}] '[]' NAVIG8_LINKS An array as JSON string with attributes for custom <link> elements in html The structure is (Typescript definition): type Links = Array<Record<string, string>> Example: [{"rel": "canonical", "href": "http://example.com"}] '[]' NAVIG8_TOP_HEAD NAVIG8_BOTTOM_HEAD NAVIG8_TOP_BODY NAVIG8_BOTTOM_BODY Raw html that will be inserted in the index.html and will be statically served. Each variable name represents location where html will be inserted. "" NAVIG8_BASE_URL URL relative to the domain root or an absolute one that represents path to the frontend folder with built static Example: /pages/navig8 '/' CUSTOM LOGO By default, an icon from the manifest of the specified helm repo is used as a logo in the header of the interface. It can be overwritten with the CSS rule background-image inside .logo class in the <REPO_ROOT>/light.css that is responsible for the light theme (We assume that we will support the dark theme as well in the nearest future) The logo can be of any format supported by the browser (but .svg is highly recommended) This is how it could be done using only the terminal: LOGO_URL=url cat >> light.css <<- EOF .logo { background-image: url($LOGO_URL); } EOF You can also add a file there and set a relative path: cp /some/where/else/logo.svg ./logo.svg cat >> light.css <<- EOF .logo { background-image: url(./logo.svg); } EOF THEMIZATION The interface is built using PrimeVue UI-kit which makes it possible to customize a theme. It's possible to make the color scheme more brand-specific by setting it CSS variable in <REPO_ROOT>/light.css file that is dedicated to CSS overwrites for the light theme (We assume that we will support the dark theme as well in the nearest future). There is a description of color palettes that this UI kit uses. The method of adding a new scheme to the light.css file can be the same as for custom logo cat >> light.css <<- EOF :root { --primary-color:#3B82F6; --primary-color-text:#ffffff; /* other colors */ } EOF OVERWRITING CSS RULES Feel free to fork this repo and change styles or whatever you want, but if a fork is not the preferable option - an overwriting can be done in the same way as for custom logo and themization DEPLOYMENT AS FE STATIC 1. Build frontend static using Available Customization options. 2. Deployment to the server that serves static html/js/css 3. CORS header Access-Control-Allow-Origin should be extended for the specified helm chart repo files with the domain where navig8 is run. We have plans on simplifying this process. Please see the Roadmap section for more details AN EXAMPLE OF DEPLOYMENT FLOW It is assumed that we are inside the process where pnpm, git and node are available (Environment requirements). 1. Clone the repo git clone git@github.com:navig8s/navig8.git 2. Install dependencies pnpm install --frozen-lockfile 3. Setup at least required ENV variables declared in this table. You can do it inside the terminal process of course. NAVIG8_REPO_URL=repo_url NAVIG8_REPO_ENTRY=entry NAVIG8_REPO_NAME=name 4. Build the frontend pnpm build 5. Copy the output of FE static inside <REPO_ROOT>/dist folder anywhere you want. 6. Set Access-Control-Allow-Origin for the helm repo you've specified so navig8 could fetch all files it needs. For example, you host navig8 at https://navig8-instance.com. This should be included in the Access-Control-Allow-Origin header for all files in the specified helm chart. DEPLOYMENT AS DOCKER CONTAINER Docker solution could be run in k8s cluster or by one of the popular cloud services like Google Cloud Run 1. Get last image from ghcr registry 2. Set at least required environment variables from the list 3. Publish the Container's port 80, forward requests to domain of your choice to it as it will be listened for requests. 4. Run Container AN EXAMPLE OF RUNNING DOCKER IMAGE LOCALLY docker pull ghcr.io/navig8s/navig8 docker run -d -p 8080:80 \ --env NAVIG8_REPO_URL=repo_url \ --env NAVIG8_REPO_ENTRY=entry \ --env NAVIG8_REPO_NAME=name \ ghcr.io/navig8s/navig8 PROXY TO BYPASS CORS & SECURITY NOTES It's highly recommended to set CORS headers (Access-Control-Allow-Origin) for helm repo, that is going to be used by navig8 and thus handle CORS issue. In case it's not an option - there is a possibility to use reverse proxy for Docker environment (see settings). Current realisation of the reverse proxy that is available in Docker environment is intended to be used for same-origin requests that nginx will proxy to the specified chart repo's url (frontend requests /repo that is proxied to NAVIG8_REPO_URL in current implementation). EXAMPLES * [Coming soon]: install.kasten.io is a public Navig8 instance for the K10 Helm Chart. ROADMAP * Prebuilt Docker image with reverse proxy to bypass CORS inside * Possibility to skip values.schema.json file for the form construction * Possibility to view and edit values.yaml file * Dark theme support * Code of Conduct * Issues template ABOUT Simplify and Visualize Helm Deployments TOPICS helm helm-charts helm-chart k10 kasten RESOURCES Readme LICENSE Apache-2.0, Unknown licenses found LICENSES FOUND Apache-2.0 LICENSE Unknown license-banner.txt STARS 2 stars WATCHERS 3 watching FORKS 0 forks RELEASES 1 tags PACKAGES 1 * navig8 LANGUAGES * CSS 60.1% * TypeScript 27.4% * Vue 9.8% * Shell 1.3% * JavaScript 0.9% * HTML 0.4% * Dockerfile 0.1% FOOTER © 2022 GitHub, Inc. FOOTER NAVIGATION * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can’t perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.