diff --git a/packages/nix/localDevShell/scripts/enhance-modules-json.js b/packages/nix/localDevShell/scripts/enhance-modules-json.js new file mode 100755 index 000000000..048e33485 --- /dev/null +++ b/packages/nix/localDevShell/scripts/enhance-modules-json.js @@ -0,0 +1,151 @@ +#!/usr/bin/env node + +// Purpose: Enhances the modules.json with filesystem content structure +// for both auto-generated and human-written documentation + +const fs = require('fs'); +const path = require('path'); + +// Get paths from environment or use defaults +const DOCS_VERSION_DIR = process.env.DOCS_VERSION_DIR || path.join(__dirname, '../../../website/src/content/docs/main'); +const OUTPUT_DIR = path.join(DOCS_VERSION_DIR, 'modules'); +const MODULES_JSON_PATH = path.join(DOCS_VERSION_DIR, 'modules.json'); + +// Read the existing modules.json generated by the bash script +function readExistingModulesJson() { + try { + const content = fs.readFileSync(MODULES_JSON_PATH, 'utf8'); + return JSON.parse(content); + } catch (error) { + console.error('Error reading modules.json:', error); + return { modules: [] }; + } +} + +// Scan a module directory for manual documentation files +function scanModuleDirectory(moduleDir, moduleName) { + const content = { reference: null, guides: [], examples: [] }; + + if (!fs.existsSync(moduleDir)) { + return content; + } + + const items = fs.readdirSync(moduleDir, { withFileTypes: true }); + + for (const item of items) { + if (item.name === 'reference' && item.isDirectory()) { + // Reference docs are auto-generated, just mark as present + content.reference = { path: '/reference', text: 'Reference' }; + } else if (item.isFile() && item.name.endsWith('.mdx') && item.name !== 'index.mdx') { + // Human-written guides at the module root level + const baseName = path.basename(item.name, '.mdx'); + const title = formatTitle(baseName); + content.guides.push({ + path: `/${baseName}`, + text: title, + file: item.name + }); + } else if (item.isDirectory() && item.name === 'examples') { + // Examples subdirectory + const examplesDir = path.join(moduleDir, 'examples'); + const exampleFiles = fs.readdirSync(examplesDir, { withFileTypes: true }) + .filter(file => file.isFile() && file.name.endsWith('.mdx')) + .map(file => { + const baseName = path.basename(file.name, '.mdx'); + const title = formatTitle(baseName); + return { + path: `/examples/${baseName}`, + text: title, + file: file.name + }; + }); + + if (exampleFiles.length > 0) { + content.examples = exampleFiles; + } + } + } + + return content; +} + +// Convert kebab-case to Title Case +function formatTitle(str) { + return str + .split('-') + .map(word => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' '); +} + +// Build the enhanced module structure +function buildEnhancedModuleStructure(module) { + const moduleDir = path.join(OUTPUT_DIR, module.module); + const content = scanModuleDirectory(moduleDir, module.module); + + // Build the sub-navigation structure + const sub = []; + + // Always add reference first if it exists + if (content.reference) { + sub.push(content.reference); + } + + // Add guides + if (content.guides.length > 0) { + sub.push(...content.guides); + } + + // Add examples as a submenu if they exist + if (content.examples.length > 0) { + sub.push({ + path: '/examples', + text: 'Examples', + sub: content.examples + }); + } + + return { + ...module, + sub: sub.length > 0 ? sub : undefined, + hasContent: sub.length > 0 + }; +} + +// Main function +function enhanceModulesJson() { + console.log('Enhancing modules.json with filesystem content...'); + + const existingData = readExistingModulesJson(); + + // Enhance each module with content structure + const enhancedModules = existingData.modules.map(buildEnhancedModuleStructure); + + // Update the JSON structure + const enhancedData = { + ...existingData, + modules: enhancedModules, + generatedAt: new Date().toISOString(), + version: '2.0' + }; + + // Write the enhanced JSON back + fs.writeFileSync(MODULES_JSON_PATH, JSON.stringify(enhancedData, null, 2)); + + console.log(`Enhanced modules.json with ${enhancedModules.length} modules`); + + // Log summary of content found + const modulesWithContent = enhancedModules.filter(m => m.hasContent); + const modulesWithGuides = enhancedModules.filter(m => m.sub?.some(s => s.file)); + const modulesWithExamples = enhancedModules.filter(m => m.sub?.some(s => s.sub)); + + console.log(`- ${modulesWithContent.length} modules have additional content`); + console.log(`- ${modulesWithGuides.length} modules have human-written guides`); + console.log(`- ${modulesWithExamples.length} modules have examples`); +} + +// Run if called directly +if (require.main === module) { + enhanceModulesJson(); +} + +module.exports = { enhanceModulesJson, scanModuleDirectory, formatTitle }; \ No newline at end of file diff --git a/packages/nix/localDevShell/scripts/generate-tf-docs.sh b/packages/nix/localDevShell/scripts/generate-tf-docs.sh index c4069fe6d..57a40caa5 100755 --- a/packages/nix/localDevShell/scripts/generate-tf-docs.sh +++ b/packages/nix/localDevShell/scripts/generate-tf-docs.sh @@ -3,19 +3,18 @@ # Purpose: Uses terraform-docs to create the markdown documentation # for each terraform module for the public website DOCS_VERSION_DIR="$REPO_ROOT/packages/website/src/content/docs/main" -OUTPUT_DIR="$DOCS_VERSION_DIR/reference/infrastructure-modules" +OUTPUT_DIR="$DOCS_VERSION_DIR/modules" # Initialize an empty JSON object with a `modules` array JSON=$(jq -n '{modules: []}') -# Remove the old docs -rm -rf "$OUTPUT_DIR/aws" -rm -rf "$OUTPUT_DIR/kubernetes" -rm -rf "$OUTPUT_DIR/authentik" -rm -rf "$OUTPUT_DIR/vault" -rm -rf "$OUTPUT_DIR/utility" -rm -rf "$OUTPUT_DIR/direct" -rm -rf "$OUTPUT_DIR/submodule" +# Function to clean only auto-generated content (reference folders) +function clean_autogenerated_content() { + local module_dir="$1" + if [ -d "$module_dir/reference" ]; then + rm -rf "$module_dir/reference" + fi +} function skip_injected_variables() { awk ' @@ -78,9 +77,16 @@ for d in "$TERRAFORM_MODULES_DIR"/*; do # Append the directory name to the modules array in the JSON object JSON=$(jq --arg module "$MODULE" --arg group "$GROUP" --arg type "$TYPE" '.modules += [{"module": $module, "type": $type, "group": $group}]' <<<"$JSON") - # Make the docs - DOCS_DIR="$OUTPUT_DIR/$TYPE/$GROUP/$MODULE" + # Make the docs in new flat structure with reference subfolder + MODULE_DIR="$OUTPUT_DIR/$MODULE" + DOCS_DIR="$MODULE_DIR/reference" + + # Clean existing auto-generated content only + clean_autogenerated_content "$MODULE_DIR" + + # Create the reference directory mkdir -p "$DOCS_DIR" + # Generate the reference documentation terraform-docs -c "$TERRAFORM_MODULES_DIR/.terraform-docs.yml" "$d" | add_provider_links | remove_version_header | @@ -98,3 +104,7 @@ for d in "$TERRAFORM_MODULES_DIR"/*; do done echo "$JSON" >"$DOCS_VERSION_DIR/modules.json" + +# Enhance the modules.json with filesystem content structure +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +DOCS_VERSION_DIR="$DOCS_VERSION_DIR" node "$SCRIPT_DIR/enhance-modules-json.js" diff --git a/packages/website/src/components/layouts/docs/util/makeModuleDir.ts b/packages/website/src/components/layouts/docs/util/makeModuleDir.ts deleted file mode 100644 index c5cf1087c..000000000 --- a/packages/website/src/components/layouts/docs/util/makeModuleDir.ts +++ /dev/null @@ -1,12 +0,0 @@ -export function makeModuleDir( - modules: Array<{ type: string; group: string; module: string }>, - group: string, - type: string, -) { - return modules - .filter((module) => module.group === group && module.type === type) - .map(({ module }) => ({ - text: module, - path: `/${module}`, - })); -} \ No newline at end of file diff --git a/packages/website/src/components/layouts/docs/util/makeModuleList.ts b/packages/website/src/components/layouts/docs/util/makeModuleList.ts new file mode 100644 index 000000000..dffb8079a --- /dev/null +++ b/packages/website/src/components/layouts/docs/util/makeModuleList.ts @@ -0,0 +1,75 @@ +// Enhanced module type with optional sub-navigation +interface EnhancedModule { + type: string; + group: string; + module: string; + sub?: Array<{ + path: string; + text: string; + sub?: Array<{ path: string; text: string }>; + }>; + hasContent?: boolean; +} + +export function makeModuleDir( + modules: Array<{ type: string; group: string; module: string }>, + group: string, + type: string, +) { + return modules + .filter((module) => module.group === group && module.type === type) + .map(({ module }) => ({ + text: module, + path: `/${module}`, + })); +} + +export function makeFlatModuleList( + modules: Array, +) { + return modules + .map((module) => ({ + text: module.module, + path: `/${module.module}`, + sub: module.sub, // Include sub-navigation if present + })) + .sort((a, b) => a.text.localeCompare(b.text)); +} + +// Create hierarchical module list grouped by type and group +export function makeHierarchicalModuleList( + modules: Array, +) { + const grouped: Record> = {}; + + modules.forEach((module) => { + grouped[module.type][module.group].push(module); + }); + + return Object.entries(grouped).map(([type, groups]) => ({ + text: formatTypeTitle(type), + path: `/${type}`, + sub: Object.entries(groups).map(([group, moduleList]) => ({ + text: formatGroupTitle(group), + path: `/${type}/${group}`, + sub: moduleList + .sort((a, b) => a.module.localeCompare(b.module)) + .map((module) => ({ + text: module.module, + path: `/${module.module}`, + sub: module.sub, + })), + })), + })); +} + +function formatTypeTitle(type: string): string { + return type.charAt(0).toUpperCase() + type.slice(1); +} + +function formatGroupTitle(group: string): string { + return group + .split('_') + .map(word => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' '); +} \ No newline at end of file diff --git a/packages/website/src/content/docs/edge/sideNavSections.ts b/packages/website/src/content/docs/edge/sideNavSections.ts index 8404569a3..63fd4f2ff 100644 --- a/packages/website/src/content/docs/edge/sideNavSections.ts +++ b/packages/website/src/content/docs/edge/sideNavSections.ts @@ -1,5 +1,5 @@ -import { makeModuleDir } from "@/components/layouts/docs/util/makeModuleDir.ts"; +import { makeModuleDir } from "@/components/layouts/docs/util/makeModuleList.ts"; import modules from "./modules.json"; import { diff --git a/packages/website/src/content/docs/main/modules.json b/packages/website/src/content/docs/main/modules.json deleted file mode 100644 index 215dbdf5c..000000000 --- a/packages/website/src/content/docs/main/modules.json +++ /dev/null @@ -1,519 +0,0 @@ -{ - "modules": [ - { - "module": "authentik_aws_sso", - "type": "direct", - "group": "authentik" - }, - { - "module": "authentik_core_resources", - "type": "direct", - "group": "authentik" - }, - { - "module": "authentik_github_sso", - "type": "direct", - "group": "authentik" - }, - { - "module": "authentik_mongodb_atlas_sso", - "type": "direct", - "group": "authentik" - }, - { - "module": "authentik_vault_sso", - "type": "direct", - "group": "authentik" - }, - { - "module": "authentik_zoho_sso", - "type": "direct", - "group": "authentik" - }, - { - "module": "aws_account", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_cdn", - "type": "submodule", - "group": "aws" - }, - { - "module": "aws_cloudwatch_log_group", - "type": "submodule", - "group": "aws" - }, - { - "module": "aws_delegated_zones", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_dns_links", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_dns_records", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_dns_zones", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_ecr_public_repos", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_ecr_pull_through_cache", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_ecr_pull_through_cache_addresses", - "type": "submodule", - "group": "aws" - }, - { - "module": "aws_ecr_repos", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_eks", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_iam_identity_center_permissions", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_kms_encrypt_key", - "type": "submodule", - "group": "aws" - }, - { - "module": "aws_organization", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_registered_domains", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_s3_private_bucket", - "type": "submodule", - "group": "aws" - }, - { - "module": "aws_s3_public_website", - "type": "submodule", - "group": "aws" - }, - { - "module": "aws_ses_domain", - "type": "direct", - "group": "aws" - }, - { - "module": "aws_vpc", - "type": "direct", - "group": "aws" - }, - { - "module": "kube_airbyte", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_alloy", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_argo", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_argo_event_bus", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_argo_event_source", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_argo_sensor", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_authentik", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_aws_cdn", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_aws_creds", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_aws_ebs_csi", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_aws_lb_controller", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_bastion", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_buildkit", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_certificates", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_cert_issuers", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_cert_manager", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_cilium", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_cloudnative_pg", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_constants", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_core_dns", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_cron_job", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_daemon_set", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_deployment", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_descheduler", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_disruption_window_controller", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_external_dns", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_external_snapshotter", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_gha", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_gha_runners", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_grist", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_ingress", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_ingress_nginx", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_internal_cert", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_job", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_karpenter", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_karpenter_node_pools", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_keda", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_kyverno", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_linkerd", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_logging", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_metrics_server", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_monitoring", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_namespace", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_nats", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_nocodb", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_node_image_cache", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_node_image_cache_controller", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_open_cost", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_opensearch", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_pg_cluster", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_pod", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_policies", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_pvc_annotator", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_pvc_autoresizer", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_redis_sentinel", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_reloader", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_sa_auth_aws", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_sa_auth_vault", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_sa_auth_workflow", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_scheduler", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_service", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_stateful_set", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_sync_config_map", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_sync_secret", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_vault", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_vault_proxy", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "kube_velero", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_vpa", - "type": "direct", - "group": "kubernetes" - }, - { - "module": "kube_workload_utility", - "type": "submodule", - "group": "kubernetes" - }, - { - "module": "mongodb_atlas_identity_provider", - "type": "direct", - "group": "authentik" - }, - { - "module": "test_kube_pg_cluster", - "type": "direct", - "group": "example" - }, - { - "module": "tf_bootstrap_resources", - "type": "direct", - "group": "aws" - }, - { - "module": "vault_auth_oidc", - "type": "direct", - "group": "vault" - }, - { - "module": "vault_core_resources", - "type": "direct", - "group": "vault" - }, - { - "module": "wf_dockerfile_build", - "type": "submodule", - "group": "workflow" - }, - { - "module": "wf_spec", - "type": "submodule", - "group": "workflow" - }, - { - "module": "wf_tf_deploy", - "type": "submodule", - "group": "workflow" - } - ] -} diff --git a/packages/website/src/content/docs/main/modules/ModuleListingPage.tsx b/packages/website/src/content/docs/main/modules/ModuleListingPage.tsx new file mode 100644 index 000000000..fc1162976 --- /dev/null +++ b/packages/website/src/content/docs/main/modules/ModuleListingPage.tsx @@ -0,0 +1,190 @@ +// Module search and listing page for the new flat module structure +import type { Component } from "solid-js"; +import { createSignal, createMemo, For } from "solid-js"; +import { clsx } from "clsx"; + +import modules from "./modules.json"; + +interface IModuleData { + module: string; + type: string; + group: string; + sub?: Array<{ + path: string; + text: string; + sub?: Array<{ path: string; text: string }>; + }>; + hasContent?: boolean; +} + +interface IModuleListingPageProps { + modules: IModuleData[]; +} + +export const ModuleListingPage: Component = (props) => { + const [searchTerm, setSearchTerm] = createSignal(""); + const [selectedType, setSelectedType] = createSignal("all"); + const [selectedGroup, setSelectedGroup] = createSignal("all"); + + // Get unique groups and types for filters + const uniqueGroups = createMemo(() => { + const groups = new Set(props.modules.map(m => m.group)); + return Array.from(groups).sort(); + }); + + const uniqueTypes = createMemo(() => { + const types = new Set(props.modules.map(m => m.type)); + return Array.from(types).sort(); + }); + + // Filter modules based on search and filters + const filteredModules = createMemo(() => { + return props.modules.filter(module => { + const matchesSearch = module.module + .toLowerCase() + .includes(searchTerm().toLowerCase()); + + const matchesType = selectedType() === "all" || module.type === selectedType(); + const matchesGroup = selectedGroup() === "all" || module.group === selectedGroup(); + + return matchesSearch && matchesType && matchesGroup; + }); + }); + + return ( +
+
+

Infrastructure Modules

+

+ Browse and search through all available Panfactum infrastructure modules. + Use the filters below to find modules by type, group, or search by name. +

+
+ + {/* Search and Filter Controls */} +
+ {/* Search Input */} +
+ + setSearchTerm(e.currentTarget.value)} + placeholder="Type module name..." + class="w-full px-3 py-2 bg-primary border border-primary rounded text-primary focus:outline-none focus:ring-2 focus:ring-brand-500" + /> +
+ + {/* Filter Controls */} +
+
+ + +
+ +
+ + +
+
+ + {/* Results Count */} +
+ Showing {filteredModules().length} of {props.modules.length} modules +
+
+ + {/* Module Grid */} +
+ + No modules found matching your criteria. +
+ }> + {(module) => ( + + )} + +
+ + ); +}; + +// Individual module card component +interface IModuleCardProps { + module: IModuleData; +} + +const ModuleCard: Component = (props) => { + return ( + +
+

+ {props.module.module} +

+ +
+ + {props.module.type === "direct" ? "Direct" : "Submodule"} + + + + {props.module.group} + +
+
+
+ ); +}; + +// Default export for the main page +export default function ModulesPage() { + return ; +} \ No newline at end of file diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_aws_sso/index.mdx b/packages/website/src/content/docs/main/modules/authentik_aws_sso/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_aws_sso/index.mdx rename to packages/website/src/content/docs/main/modules/authentik_aws_sso/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_core_resources/index.mdx b/packages/website/src/content/docs/main/modules/authentik_core_resources/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_core_resources/index.mdx rename to packages/website/src/content/docs/main/modules/authentik_core_resources/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/doc_images/github-acs-url.png b/packages/website/src/content/docs/main/modules/authentik_github_sso/reference/doc_images/github-acs-url.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/doc_images/github-acs-url.png rename to packages/website/src/content/docs/main/modules/authentik_github_sso/reference/doc_images/github-acs-url.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/doc_images/github-application.png b/packages/website/src/content/docs/main/modules/authentik_github_sso/reference/doc_images/github-application.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/doc_images/github-application.png rename to packages/website/src/content/docs/main/modules/authentik_github_sso/reference/doc_images/github-application.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/doc_images/github-saml-form.png b/packages/website/src/content/docs/main/modules/authentik_github_sso/reference/doc_images/github-saml-form.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/doc_images/github-saml-form.png rename to packages/website/src/content/docs/main/modules/authentik_github_sso/reference/doc_images/github-saml-form.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/index.mdx b/packages/website/src/content/docs/main/modules/authentik_github_sso/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_github_sso/index.mdx rename to packages/website/src/content/docs/main/modules/authentik_github_sso/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_mongodb_atlas_sso/doc_images/mongodb-atlas-identity-providers-acs-url.png b/packages/website/src/content/docs/main/modules/authentik_mongodb_atlas_sso/reference/doc_images/mongodb-atlas-identity-providers-acs-url.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_mongodb_atlas_sso/doc_images/mongodb-atlas-identity-providers-acs-url.png rename to packages/website/src/content/docs/main/modules/authentik_mongodb_atlas_sso/reference/doc_images/mongodb-atlas-identity-providers-acs-url.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_mongodb_atlas_sso/index.mdx b/packages/website/src/content/docs/main/modules/authentik_mongodb_atlas_sso/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_mongodb_atlas_sso/index.mdx rename to packages/website/src/content/docs/main/modules/authentik_mongodb_atlas_sso/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_vault_sso/index.mdx b/packages/website/src/content/docs/main/modules/authentik_vault_sso/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_vault_sso/index.mdx rename to packages/website/src/content/docs/main/modules/authentik_vault_sso/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_zoho_sso/index.mdx b/packages/website/src/content/docs/main/modules/authentik_zoho_sso/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/authentik_zoho_sso/index.mdx rename to packages/website/src/content/docs/main/modules/authentik_zoho_sso/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_account/index.mdx b/packages/website/src/content/docs/main/modules/aws_account/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_account/index.mdx rename to packages/website/src/content/docs/main/modules/aws_account/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_cdn/index.mdx b/packages/website/src/content/docs/main/modules/aws_cdn/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_cdn/index.mdx rename to packages/website/src/content/docs/main/modules/aws_cdn/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_cloudwatch_log_group/index.mdx b/packages/website/src/content/docs/main/modules/aws_cloudwatch_log_group/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_cloudwatch_log_group/index.mdx rename to packages/website/src/content/docs/main/modules/aws_cloudwatch_log_group/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_delegated_zones/index.mdx b/packages/website/src/content/docs/main/modules/aws_delegated_zones/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_delegated_zones/index.mdx rename to packages/website/src/content/docs/main/modules/aws_delegated_zones/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_dns_links/index.mdx b/packages/website/src/content/docs/main/modules/aws_dns_links/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_dns_links/index.mdx rename to packages/website/src/content/docs/main/modules/aws_dns_links/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_dns_records/index.mdx b/packages/website/src/content/docs/main/modules/aws_dns_records/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_dns_records/index.mdx rename to packages/website/src/content/docs/main/modules/aws_dns_records/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_dns_zones/index.mdx b/packages/website/src/content/docs/main/modules/aws_dns_zones/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_dns_zones/index.mdx rename to packages/website/src/content/docs/main/modules/aws_dns_zones/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ecr_public_repos/index.mdx b/packages/website/src/content/docs/main/modules/aws_ecr_public_repos/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ecr_public_repos/index.mdx rename to packages/website/src/content/docs/main/modules/aws_ecr_public_repos/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ecr_pull_through_cache/index.mdx b/packages/website/src/content/docs/main/modules/aws_ecr_pull_through_cache/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ecr_pull_through_cache/index.mdx rename to packages/website/src/content/docs/main/modules/aws_ecr_pull_through_cache/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_ecr_pull_through_cache_addresses/index.mdx b/packages/website/src/content/docs/main/modules/aws_ecr_pull_through_cache_addresses/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_ecr_pull_through_cache_addresses/index.mdx rename to packages/website/src/content/docs/main/modules/aws_ecr_pull_through_cache_addresses/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ecr_repos/index.mdx b/packages/website/src/content/docs/main/modules/aws_ecr_repos/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ecr_repos/index.mdx rename to packages/website/src/content/docs/main/modules/aws_ecr_repos/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_eks/index.mdx b/packages/website/src/content/docs/main/modules/aws_eks/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_eks/index.mdx rename to packages/website/src/content/docs/main/modules/aws_eks/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_iam_identity_center_permissions/index.mdx b/packages/website/src/content/docs/main/modules/aws_iam_identity_center_permissions/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_iam_identity_center_permissions/index.mdx rename to packages/website/src/content/docs/main/modules/aws_iam_identity_center_permissions/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_kms_encrypt_key/index.mdx b/packages/website/src/content/docs/main/modules/aws_kms_encrypt_key/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_kms_encrypt_key/index.mdx rename to packages/website/src/content/docs/main/modules/aws_kms_encrypt_key/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_organization/index.mdx b/packages/website/src/content/docs/main/modules/aws_organization/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_organization/index.mdx rename to packages/website/src/content/docs/main/modules/aws_organization/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_registered_domains/index.mdx b/packages/website/src/content/docs/main/modules/aws_registered_domains/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_registered_domains/index.mdx rename to packages/website/src/content/docs/main/modules/aws_registered_domains/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_s3_private_bucket/index.mdx b/packages/website/src/content/docs/main/modules/aws_s3_private_bucket/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_s3_private_bucket/index.mdx rename to packages/website/src/content/docs/main/modules/aws_s3_private_bucket/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_s3_public_website/index.mdx b/packages/website/src/content/docs/main/modules/aws_s3_public_website/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/aws/aws_s3_public_website/index.mdx rename to packages/website/src/content/docs/main/modules/aws_s3_public_website/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ses_domain/index.mdx b/packages/website/src/content/docs/main/modules/aws_ses_domain/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_ses_domain/index.mdx rename to packages/website/src/content/docs/main/modules/aws_ses_domain/reference/index.mdx diff --git a/packages/website/src/content/docs/main/modules/aws_vpc/examples/basic-setup.mdx b/packages/website/src/content/docs/main/modules/aws_vpc/examples/basic-setup.mdx new file mode 100644 index 000000000..7b1d52cdd --- /dev/null +++ b/packages/website/src/content/docs/main/modules/aws_vpc/examples/basic-setup.mdx @@ -0,0 +1,58 @@ +--- +title: "Basic VPC Setup Example" +description: "Simple example of setting up an AWS VPC for development" +--- + +# Basic VPC Setup Example + +This example shows the minimal configuration needed to set up an AWS VPC for development purposes. + +## Configuration + +```hcl +module "dev_vpc" { + source = "github.com/Panfactum/stack.git//packages/infrastructure/aws_vpc?ref=__PANFACTUM_VERSION_MAIN__" + + vpc_name = "development" + vpc_cidr = "10.0.0.0/16" + + vpc_extra_tags = { + Environment = "development" + Team = "platform" + } + + providers = { + aws = aws.main + } +} +``` + +## Outputs + +After applying this configuration, you'll get: + +- **VPC ID**: Available as `module.dev_vpc.vpc_id` +- **VPC CIDR**: Available as `module.dev_vpc.vpc_cidr` +- **Default Security Group**: Available as `module.dev_vpc.default_security_group_id` + +## Usage in Other Modules + +Reference this VPC in other modules: + +```hcl +module "my_application" { + source = "./my-app-module" + + vpc_id = module.dev_vpc.vpc_id + # ... other configuration +} +``` + +## Cost Considerations + +This basic setup will incur minimal AWS costs: +- VPC: Free +- NAT Gateway: ~$45/month per AZ +- VPC Endpoints: Variable based on usage + +For development environments, consider using a single NAT Gateway to reduce costs. \ No newline at end of file diff --git a/packages/website/src/content/docs/main/modules/aws_vpc/examples/production-setup.mdx b/packages/website/src/content/docs/main/modules/aws_vpc/examples/production-setup.mdx new file mode 100644 index 000000000..123ac16c2 --- /dev/null +++ b/packages/website/src/content/docs/main/modules/aws_vpc/examples/production-setup.mdx @@ -0,0 +1,95 @@ +--- +title: "Production VPC Setup Example" +description: "Production-ready AWS VPC configuration with high availability" +--- + +# Production VPC Setup Example + +This example demonstrates a production-ready VPC configuration with high availability across multiple availability zones. + +## Configuration + +```hcl +module "prod_vpc" { + source = "github.com/Panfactum/stack.git//packages/infrastructure/aws_vpc?ref=__PANFACTUM_VERSION_MAIN__" + + vpc_name = "production" + vpc_cidr = "10.100.0.0/16" + + vpc_extra_tags = { + Environment = "production" + CostCenter = "engineering" + Owner = "platform-team" + BusinessUnit = "core-services" + BackupRequired = "true" + MonitoringLevel = "enhanced" + } + + providers = { + aws = aws.main + } +} +``` + +## Production Considerations + +### Security +- VPC Flow Logs are automatically enabled +- Default security group rules are restrictive +- Network ACLs provide additional security layer + +### High Availability +- Subnets are created across all available AZs +- NAT Gateways are deployed in each AZ for redundancy +- Cross-AZ traffic is minimized + +### Monitoring +- VPC Flow Logs are sent to CloudWatch +- Network performance monitoring is enabled +- Cost allocation tags are properly configured + +### Compliance +All tags support compliance requirements: +- **CostCenter**: For financial tracking +- **Owner**: For operational responsibility +- **BackupRequired**: For disaster recovery planning +- **MonitoringLevel**: For alerting configuration + +## Integration with Other Services + +### Database Subnets +```hcl +module "database_subnets" { + source = "./database-subnet-module" + + vpc_id = module.prod_vpc.vpc_id + # Configure isolated subnets for databases +} +``` + +### Load Balancer Setup +```hcl +module "application_lb" { + source = "./alb-module" + + vpc_id = module.prod_vpc.vpc_id + subnet_ids = module.prod_vpc.public_subnet_ids + # Additional ALB configuration +} +``` + +## Cost Optimization + +For production workloads: +- Use VPC endpoints for frequently accessed AWS services +- Consider Reserved Instances for NAT Gateways in high-traffic scenarios +- Monitor data transfer costs between AZs +- Implement proper subnet sizing to avoid IP waste + +## Disaster Recovery + +This configuration supports disaster recovery through: +- Multi-AZ deployment +- Automated backups via proper tagging +- Infrastructure as Code for rapid reconstruction +- Cross-region replication capabilities \ No newline at end of file diff --git a/packages/website/src/content/docs/main/modules/aws_vpc/guide.mdx b/packages/website/src/content/docs/main/modules/aws_vpc/guide.mdx new file mode 100644 index 000000000..783558269 --- /dev/null +++ b/packages/website/src/content/docs/main/modules/aws_vpc/guide.mdx @@ -0,0 +1,62 @@ +--- +title: "AWS VPC Setup Guide" +description: "Step-by-step guide for setting up AWS VPC with the Panfactum framework" +--- + +# AWS VPC Setup Guide + +This guide walks you through setting up an AWS VPC using the `aws_vpc` module in your Panfactum infrastructure. + +## Prerequisites + +Before setting up your VPC, ensure you have: + +- AWS account properly configured +- Panfactum devShell installed and configured +- Terraform/OpenTofu CLI available + +## Basic Setup + +1. **Create your module configuration**: + +```hcl +module "vpc" { + source = "github.com/Panfactum/stack.git//packages/infrastructure/aws_vpc?ref=__PANFACTUM_VERSION_MAIN__" + + vpc_name = "main" + vpc_cidr = "10.0.0.0/16" + vpc_extra_tags = {} + + # Provider configuration + providers = { + aws = aws.main + } +} +``` + +2. **Apply the configuration**: + +```bash +terragrunt apply +``` + +## Best Practices + +- **CIDR Planning**: Choose your CIDR blocks carefully to avoid conflicts with other networks +- **Tagging**: Use consistent tagging strategies for cost management and organization +- **Security**: Always enable VPC Flow Logs for security monitoring + +## Common Issues + +### CIDR Overlap +If you see CIDR overlap errors, ensure your VPC CIDR doesn't conflict with existing networks. + +### Route Table Conflicts +Check that custom route tables don't interfere with the module's routing logic. + +## Next Steps + +After setting up your VPC, consider: +- Setting up subnets with the appropriate modules +- Configuring NAT gateways for private subnet internet access +- Setting up VPC endpoints for AWS services \ No newline at end of file diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_vpc/index.mdx b/packages/website/src/content/docs/main/modules/aws_vpc/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/aws_vpc/index.mdx rename to packages/website/src/content/docs/main/modules/aws_vpc/reference/index.mdx diff --git a/packages/website/src/content/docs/main/modules/aws_vpc/tutorial.mdx b/packages/website/src/content/docs/main/modules/aws_vpc/tutorial.mdx new file mode 100644 index 000000000..75ce3fa1c --- /dev/null +++ b/packages/website/src/content/docs/main/modules/aws_vpc/tutorial.mdx @@ -0,0 +1,100 @@ +--- +title: "AWS VPC Tutorial" +description: "Hands-on tutorial for creating your first AWS VPC with Panfactum" +--- + +# AWS VPC Tutorial + +In this tutorial, you'll create a complete AWS VPC setup from scratch using the Panfactum framework. + +## What We'll Build + +By the end of this tutorial, you'll have: +- A VPC with public and private subnets +- Proper routing and NAT configuration +- Security groups and configured +- VPC Flow Logs enabled + +## Step 1: Initialize Your Infrastructure + +Create a new directory for your VPC configuration: + +```bash +mkdir my-vpc-setup +cd my-vpc-setup +``` + +## Step 2: Create the Terragrunt Configuration + +Create `terragrunt.hcl`: + +```hcl +include "root" { + path = find_in_parent_folders() +} + +terraform { + source = "github.com/Panfactum/stack.git//packages/infrastructure/aws_vpc?ref=__PANFACTUM_VERSION_MAIN__" +} + +inputs = { + vpc_name = "tutorial-vpc" + vpc_cidr = "10.1.0.0/16" + + vpc_extra_tags = { + Purpose = "Tutorial" + Owner = "DevOps Team" + } +} +``` + +## Step 3: Plan and Apply + +Run the following commands: + +```bash +# Initialize the module +terragrunt init + +# Review the planned changes +terragrunt plan + +# Apply the configuration +terragrunt apply +``` + +## Step 4: Verify Your Setup + +After applying, verify your VPC was created: + +```bash +# List VPCs +aws ec2 describe-vpcs --query 'Vpcs[?Tags[?Key==`Name` && Value==`tutorial-vpc`]]' + +# Check VPC Flow Logs +aws logs describe-log-groups --log-group-name-prefix "/aws/vpc/flowlogs" +``` + +## Step 5: Clean Up + +When you're done with the tutorial: + +```bash +terragrunt destroy +``` + +## Troubleshooting + +### Common Errors + +**Error: VPC limit exceeded** +- Check your VPC limits in AWS console +- Clean up unused VPCs + +**Error: CIDR conflict** +- Choose a different CIDR block +- Check existing VPC CIDR ranges + +## Conclusion + +You've successfully created an AWS VPC using Panfactum! This VPC can now serve as the foundation for your AWS infrastructure. \ No newline at end of file diff --git a/packages/website/src/content/docs/main/modules/index.mdx b/packages/website/src/content/docs/main/modules/index.mdx new file mode 100644 index 000000000..8f68f7d0f --- /dev/null +++ b/packages/website/src/content/docs/main/modules/index.mdx @@ -0,0 +1,8 @@ +--- +title: "Infrastructure Modules" +description: "Browse and search through all available Panfactum infrastructure modules" +--- + +import ModulesPage from "./ModuleListingPage.tsx"; + + \ No newline at end of file diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_airbyte/index.mdx b/packages/website/src/content/docs/main/modules/kube_airbyte/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_airbyte/index.mdx rename to packages/website/src/content/docs/main/modules/kube_airbyte/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_alloy/index.mdx b/packages/website/src/content/docs/main/modules/kube_alloy/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_alloy/index.mdx rename to packages/website/src/content/docs/main/modules/kube_alloy/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_argo/index.mdx b/packages/website/src/content/docs/main/modules/kube_argo/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_argo/index.mdx rename to packages/website/src/content/docs/main/modules/kube_argo/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_argo_event_bus/index.mdx b/packages/website/src/content/docs/main/modules/kube_argo_event_bus/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_argo_event_bus/index.mdx rename to packages/website/src/content/docs/main/modules/kube_argo_event_bus/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_argo_event_source/index.mdx b/packages/website/src/content/docs/main/modules/kube_argo_event_source/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_argo_event_source/index.mdx rename to packages/website/src/content/docs/main/modules/kube_argo_event_source/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_argo_sensor/index.mdx b/packages/website/src/content/docs/main/modules/kube_argo_sensor/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_argo_sensor/index.mdx rename to packages/website/src/content/docs/main/modules/kube_argo_sensor/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_authentik/index.mdx b/packages/website/src/content/docs/main/modules/kube_authentik/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_authentik/index.mdx rename to packages/website/src/content/docs/main/modules/kube_authentik/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_aws_cdn/index.mdx b/packages/website/src/content/docs/main/modules/kube_aws_cdn/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_aws_cdn/index.mdx rename to packages/website/src/content/docs/main/modules/kube_aws_cdn/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_aws_creds/index.mdx b/packages/website/src/content/docs/main/modules/kube_aws_creds/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_aws_creds/index.mdx rename to packages/website/src/content/docs/main/modules/kube_aws_creds/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_aws_ebs_csi/index.mdx b/packages/website/src/content/docs/main/modules/kube_aws_ebs_csi/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_aws_ebs_csi/index.mdx rename to packages/website/src/content/docs/main/modules/kube_aws_ebs_csi/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_aws_lb_controller/index.mdx b/packages/website/src/content/docs/main/modules/kube_aws_lb_controller/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_aws_lb_controller/index.mdx rename to packages/website/src/content/docs/main/modules/kube_aws_lb_controller/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_bastion/index.mdx b/packages/website/src/content/docs/main/modules/kube_bastion/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_bastion/index.mdx rename to packages/website/src/content/docs/main/modules/kube_bastion/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_buildkit/index.mdx b/packages/website/src/content/docs/main/modules/kube_buildkit/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_buildkit/index.mdx rename to packages/website/src/content/docs/main/modules/kube_buildkit/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cert_issuers/index.mdx b/packages/website/src/content/docs/main/modules/kube_cert_issuers/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cert_issuers/index.mdx rename to packages/website/src/content/docs/main/modules/kube_cert_issuers/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cert_manager/index.mdx b/packages/website/src/content/docs/main/modules/kube_cert_manager/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cert_manager/index.mdx rename to packages/website/src/content/docs/main/modules/kube_cert_manager/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_certificates/index.mdx b/packages/website/src/content/docs/main/modules/kube_certificates/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_certificates/index.mdx rename to packages/website/src/content/docs/main/modules/kube_certificates/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cilium/index.mdx b/packages/website/src/content/docs/main/modules/kube_cilium/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cilium/index.mdx rename to packages/website/src/content/docs/main/modules/kube_cilium/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cloudnative_pg/index.mdx b/packages/website/src/content/docs/main/modules/kube_cloudnative_pg/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_cloudnative_pg/index.mdx rename to packages/website/src/content/docs/main/modules/kube_cloudnative_pg/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_constants/index.mdx b/packages/website/src/content/docs/main/modules/kube_constants/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_constants/index.mdx rename to packages/website/src/content/docs/main/modules/kube_constants/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_core_dns/index.mdx b/packages/website/src/content/docs/main/modules/kube_core_dns/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_core_dns/index.mdx rename to packages/website/src/content/docs/main/modules/kube_core_dns/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_cron_job/index.mdx b/packages/website/src/content/docs/main/modules/kube_cron_job/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_cron_job/index.mdx rename to packages/website/src/content/docs/main/modules/kube_cron_job/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_daemon_set/index.mdx b/packages/website/src/content/docs/main/modules/kube_daemon_set/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_daemon_set/index.mdx rename to packages/website/src/content/docs/main/modules/kube_daemon_set/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_deployment/index.mdx b/packages/website/src/content/docs/main/modules/kube_deployment/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_deployment/index.mdx rename to packages/website/src/content/docs/main/modules/kube_deployment/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_descheduler/index.mdx b/packages/website/src/content/docs/main/modules/kube_descheduler/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_descheduler/index.mdx rename to packages/website/src/content/docs/main/modules/kube_descheduler/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_disruption_window_controller/index.mdx b/packages/website/src/content/docs/main/modules/kube_disruption_window_controller/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_disruption_window_controller/index.mdx rename to packages/website/src/content/docs/main/modules/kube_disruption_window_controller/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_external_dns/index.mdx b/packages/website/src/content/docs/main/modules/kube_external_dns/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_external_dns/index.mdx rename to packages/website/src/content/docs/main/modules/kube_external_dns/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_external_snapshotter/index.mdx b/packages/website/src/content/docs/main/modules/kube_external_snapshotter/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_external_snapshotter/index.mdx rename to packages/website/src/content/docs/main/modules/kube_external_snapshotter/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_gha/index.mdx b/packages/website/src/content/docs/main/modules/kube_gha/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_gha/index.mdx rename to packages/website/src/content/docs/main/modules/kube_gha/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_gha_runners/index.mdx b/packages/website/src/content/docs/main/modules/kube_gha_runners/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_gha_runners/index.mdx rename to packages/website/src/content/docs/main/modules/kube_gha_runners/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_grist/index.mdx b/packages/website/src/content/docs/main/modules/kube_grist/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_grist/index.mdx rename to packages/website/src/content/docs/main/modules/kube_grist/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_ingress/index.mdx b/packages/website/src/content/docs/main/modules/kube_ingress/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_ingress/index.mdx rename to packages/website/src/content/docs/main/modules/kube_ingress/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_ingress_nginx/index.mdx b/packages/website/src/content/docs/main/modules/kube_ingress_nginx/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_ingress_nginx/index.mdx rename to packages/website/src/content/docs/main/modules/kube_ingress_nginx/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_internal_cert/index.mdx b/packages/website/src/content/docs/main/modules/kube_internal_cert/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_internal_cert/index.mdx rename to packages/website/src/content/docs/main/modules/kube_internal_cert/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_job/index.mdx b/packages/website/src/content/docs/main/modules/kube_job/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_job/index.mdx rename to packages/website/src/content/docs/main/modules/kube_job/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_karpenter/index.mdx b/packages/website/src/content/docs/main/modules/kube_karpenter/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_karpenter/index.mdx rename to packages/website/src/content/docs/main/modules/kube_karpenter/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_karpenter_node_pools/index.mdx b/packages/website/src/content/docs/main/modules/kube_karpenter_node_pools/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_karpenter_node_pools/index.mdx rename to packages/website/src/content/docs/main/modules/kube_karpenter_node_pools/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_keda/index.mdx b/packages/website/src/content/docs/main/modules/kube_keda/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_keda/index.mdx rename to packages/website/src/content/docs/main/modules/kube_keda/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_kyverno/index.mdx b/packages/website/src/content/docs/main/modules/kube_kyverno/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_kyverno/index.mdx rename to packages/website/src/content/docs/main/modules/kube_kyverno/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_linkerd/index.mdx b/packages/website/src/content/docs/main/modules/kube_linkerd/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_linkerd/index.mdx rename to packages/website/src/content/docs/main/modules/kube_linkerd/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_logging/index.mdx b/packages/website/src/content/docs/main/modules/kube_logging/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_logging/index.mdx rename to packages/website/src/content/docs/main/modules/kube_logging/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_metrics_server/index.mdx b/packages/website/src/content/docs/main/modules/kube_metrics_server/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_metrics_server/index.mdx rename to packages/website/src/content/docs/main/modules/kube_metrics_server/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_monitoring/index.mdx b/packages/website/src/content/docs/main/modules/kube_monitoring/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_monitoring/index.mdx rename to packages/website/src/content/docs/main/modules/kube_monitoring/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_namespace/index.mdx b/packages/website/src/content/docs/main/modules/kube_namespace/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_namespace/index.mdx rename to packages/website/src/content/docs/main/modules/kube_namespace/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_nats/index.mdx b/packages/website/src/content/docs/main/modules/kube_nats/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_nats/index.mdx rename to packages/website/src/content/docs/main/modules/kube_nats/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_nocodb/index.mdx b/packages/website/src/content/docs/main/modules/kube_nocodb/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_nocodb/index.mdx rename to packages/website/src/content/docs/main/modules/kube_nocodb/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_node_image_cache/index.mdx b/packages/website/src/content/docs/main/modules/kube_node_image_cache/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_node_image_cache/index.mdx rename to packages/website/src/content/docs/main/modules/kube_node_image_cache/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_node_image_cache_controller/index.mdx b/packages/website/src/content/docs/main/modules/kube_node_image_cache_controller/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_node_image_cache_controller/index.mdx rename to packages/website/src/content/docs/main/modules/kube_node_image_cache_controller/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_open_cost/index.mdx b/packages/website/src/content/docs/main/modules/kube_open_cost/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_open_cost/index.mdx rename to packages/website/src/content/docs/main/modules/kube_open_cost/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_opensearch/index.mdx b/packages/website/src/content/docs/main/modules/kube_opensearch/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_opensearch/index.mdx rename to packages/website/src/content/docs/main/modules/kube_opensearch/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_pg_cluster/index.mdx b/packages/website/src/content/docs/main/modules/kube_pg_cluster/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_pg_cluster/index.mdx rename to packages/website/src/content/docs/main/modules/kube_pg_cluster/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_pod/index.mdx b/packages/website/src/content/docs/main/modules/kube_pod/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_pod/index.mdx rename to packages/website/src/content/docs/main/modules/kube_pod/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_policies/index.mdx b/packages/website/src/content/docs/main/modules/kube_policies/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_policies/index.mdx rename to packages/website/src/content/docs/main/modules/kube_policies/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_pvc_annotator/index.mdx b/packages/website/src/content/docs/main/modules/kube_pvc_annotator/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_pvc_annotator/index.mdx rename to packages/website/src/content/docs/main/modules/kube_pvc_annotator/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_pvc_autoresizer/index.mdx b/packages/website/src/content/docs/main/modules/kube_pvc_autoresizer/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_pvc_autoresizer/index.mdx rename to packages/website/src/content/docs/main/modules/kube_pvc_autoresizer/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_redis_sentinel/index.mdx b/packages/website/src/content/docs/main/modules/kube_redis_sentinel/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_redis_sentinel/index.mdx rename to packages/website/src/content/docs/main/modules/kube_redis_sentinel/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_reloader/index.mdx b/packages/website/src/content/docs/main/modules/kube_reloader/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_reloader/index.mdx rename to packages/website/src/content/docs/main/modules/kube_reloader/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sa_auth_aws/index.mdx b/packages/website/src/content/docs/main/modules/kube_sa_auth_aws/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sa_auth_aws/index.mdx rename to packages/website/src/content/docs/main/modules/kube_sa_auth_aws/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sa_auth_vault/index.mdx b/packages/website/src/content/docs/main/modules/kube_sa_auth_vault/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sa_auth_vault/index.mdx rename to packages/website/src/content/docs/main/modules/kube_sa_auth_vault/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sa_auth_workflow/index.mdx b/packages/website/src/content/docs/main/modules/kube_sa_auth_workflow/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sa_auth_workflow/index.mdx rename to packages/website/src/content/docs/main/modules/kube_sa_auth_workflow/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_scheduler/index.mdx b/packages/website/src/content/docs/main/modules/kube_scheduler/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_scheduler/index.mdx rename to packages/website/src/content/docs/main/modules/kube_scheduler/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_service/index.mdx b/packages/website/src/content/docs/main/modules/kube_service/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_service/index.mdx rename to packages/website/src/content/docs/main/modules/kube_service/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_stateful_set/index.mdx b/packages/website/src/content/docs/main/modules/kube_stateful_set/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_stateful_set/index.mdx rename to packages/website/src/content/docs/main/modules/kube_stateful_set/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sync_config_map/index.mdx b/packages/website/src/content/docs/main/modules/kube_sync_config_map/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sync_config_map/index.mdx rename to packages/website/src/content/docs/main/modules/kube_sync_config_map/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sync_secret/index.mdx b/packages/website/src/content/docs/main/modules/kube_sync_secret/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_sync_secret/index.mdx rename to packages/website/src/content/docs/main/modules/kube_sync_secret/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_vault/index.mdx b/packages/website/src/content/docs/main/modules/kube_vault/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_vault/index.mdx rename to packages/website/src/content/docs/main/modules/kube_vault/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_vault_proxy/index.mdx b/packages/website/src/content/docs/main/modules/kube_vault_proxy/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_vault_proxy/index.mdx rename to packages/website/src/content/docs/main/modules/kube_vault_proxy/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_velero/index.mdx b/packages/website/src/content/docs/main/modules/kube_velero/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_velero/index.mdx rename to packages/website/src/content/docs/main/modules/kube_velero/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_vpa/index.mdx b/packages/website/src/content/docs/main/modules/kube_vpa/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_vpa/index.mdx rename to packages/website/src/content/docs/main/modules/kube_vpa/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_workload_utility/index.mdx b/packages/website/src/content/docs/main/modules/kube_workload_utility/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_workload_utility/index.mdx rename to packages/website/src/content/docs/main/modules/kube_workload_utility/reference/index.mdx diff --git a/packages/website/src/content/docs/main/modules/modules.json b/packages/website/src/content/docs/main/modules/modules.json new file mode 100644 index 000000000..840592888 --- /dev/null +++ b/packages/website/src/content/docs/main/modules/modules.json @@ -0,0 +1,1268 @@ +{ + "modules": [ + { + "module": "authentik_aws_sso", + "type": "direct", + "group": "authentik", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "authentik_core_resources", + "type": "direct", + "group": "authentik", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "authentik_github_sso", + "type": "direct", + "group": "authentik", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "authentik_mongodb_atlas_sso", + "type": "direct", + "group": "authentik", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "authentik_vault_sso", + "type": "direct", + "group": "authentik", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "authentik_zoho_sso", + "type": "direct", + "group": "authentik", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_account", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_cdn", + "type": "submodule", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_cloudwatch_log_group", + "type": "submodule", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_delegated_zones", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_dns_links", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_dns_records", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_dns_zones", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_ecr_public_repos", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_ecr_pull_through_cache", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_ecr_pull_through_cache_addresses", + "type": "submodule", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_ecr_repos", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_eks", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_iam_identity_center_permissions", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_kms_encrypt_key", + "type": "submodule", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_organization", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_registered_domains", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_s3_private_bucket", + "type": "submodule", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_s3_public_website", + "type": "submodule", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_ses_domain", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "aws_vpc", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + }, + { + "path": "/guide", + "text": "Guide", + "file": "guide.mdx" + }, + { + "path": "/tutorial", + "text": "Tutorial", + "file": "tutorial.mdx" + }, + { + "path": "/examples", + "text": "Examples", + "sub": [ + { + "path": "/examples/basic-setup", + "text": "Basic Setup", + "file": "basic-setup.mdx" + }, + { + "path": "/examples/production-setup", + "text": "Production Setup", + "file": "production-setup.mdx" + } + ] + } + ], + "hasContent": true + }, + { + "module": "kube_airbyte", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_alloy", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_argo", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_argo_event_bus", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_argo_event_source", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_argo_sensor", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_authentik", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_aws_cdn", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_aws_creds", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_aws_ebs_csi", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_aws_lb_controller", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_bastion", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_buildkit", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_certificates", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_cert_issuers", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_cert_manager", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_cilium", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_cloudnative_pg", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_constants", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_core_dns", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_cron_job", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_daemon_set", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_deployment", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_descheduler", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_disruption_window_controller", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_external_dns", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_external_snapshotter", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_gha", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_gha_runners", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_grist", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_ingress", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_ingress_nginx", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_internal_cert", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_job", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_karpenter", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_karpenter_node_pools", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_keda", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_kyverno", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_linkerd", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_logging", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_metrics_server", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_monitoring", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_namespace", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_nats", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_nocodb", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_node_image_cache", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_node_image_cache_controller", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_open_cost", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_opensearch", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_pg_cluster", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_pod", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_policies", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_pvc_annotator", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_pvc_autoresizer", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_redis_sentinel", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_reloader", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_sa_auth_aws", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_sa_auth_vault", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_sa_auth_workflow", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_scheduler", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_service", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_stateful_set", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_sync_config_map", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_sync_secret", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_vault", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_vault_proxy", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_velero", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_vpa", + "type": "direct", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "kube_workload_utility", + "type": "submodule", + "group": "kubernetes", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "mongodb_atlas_identity_provider", + "type": "direct", + "group": "authentik", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "test_kube_pg_cluster", + "type": "direct", + "group": "example", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "tf_bootstrap_resources", + "type": "direct", + "group": "aws", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "vault_auth_oidc", + "type": "direct", + "group": "vault", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "vault_core_resources", + "type": "direct", + "group": "vault", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "wf_dockerfile_build", + "type": "submodule", + "group": "workflow", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "wf_spec", + "type": "submodule", + "group": "workflow", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + }, + { + "module": "wf_tf_deploy", + "type": "submodule", + "group": "workflow", + "sub": [ + { + "path": "/reference", + "text": "Reference" + } + ], + "hasContent": true + } + ], + "generatedAt": "2025-08-20T00:43:06.905Z", + "version": "2.0" +} \ No newline at end of file diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-add-domains.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-add-domains.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-add-domains.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-add-domains.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-authentik-admin-link.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-authentik-admin-link.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-authentik-admin-link.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-authentik-admin-link.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-bypass-saml-mode.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-bypass-saml-mode.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-bypass-saml-mode.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-bypass-saml-mode.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-configure-identity-provider.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-configure-identity-provider.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-configure-identity-provider.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-configure-identity-provider.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-dns-txt-verification.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-dns-txt-verification.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-dns-txt-verification.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-dns-txt-verification.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-dns-verification.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-dns-verification.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-dns-verification.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-dns-verification.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-providers-certificate.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-providers-certificate.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-providers-certificate.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-providers-certificate.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-saml-fill-placeholder.png b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-saml-fill-placeholder.png similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/doc_images/mongodb-atlas-saml-fill-placeholder.png rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/doc_images/mongodb-atlas-saml-fill-placeholder.png diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/index.mdx b/packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/authentik/mongodb_atlas_identity_provider/index.mdx rename to packages/website/src/content/docs/main/modules/mongodb_atlas_identity_provider/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/example/test_kube_pg_cluster/index.mdx b/packages/website/src/content/docs/main/modules/test_kube_pg_cluster/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/example/test_kube_pg_cluster/index.mdx rename to packages/website/src/content/docs/main/modules/test_kube_pg_cluster/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/tf_bootstrap_resources/index.mdx b/packages/website/src/content/docs/main/modules/tf_bootstrap_resources/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/aws/tf_bootstrap_resources/index.mdx rename to packages/website/src/content/docs/main/modules/tf_bootstrap_resources/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/vault/vault_auth_oidc/index.mdx b/packages/website/src/content/docs/main/modules/vault_auth_oidc/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/vault/vault_auth_oidc/index.mdx rename to packages/website/src/content/docs/main/modules/vault_auth_oidc/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/direct/vault/vault_core_resources/index.mdx b/packages/website/src/content/docs/main/modules/vault_core_resources/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/direct/vault/vault_core_resources/index.mdx rename to packages/website/src/content/docs/main/modules/vault_core_resources/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/workflow/wf_dockerfile_build/index.mdx b/packages/website/src/content/docs/main/modules/wf_dockerfile_build/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/workflow/wf_dockerfile_build/index.mdx rename to packages/website/src/content/docs/main/modules/wf_dockerfile_build/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/workflow/wf_spec/index.mdx b/packages/website/src/content/docs/main/modules/wf_spec/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/workflow/wf_spec/index.mdx rename to packages/website/src/content/docs/main/modules/wf_spec/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/workflow/wf_tf_deploy/index.mdx b/packages/website/src/content/docs/main/modules/wf_tf_deploy/reference/index.mdx similarity index 100% rename from packages/website/src/content/docs/main/reference/infrastructure-modules/submodule/workflow/wf_tf_deploy/index.mdx rename to packages/website/src/content/docs/main/modules/wf_tf_deploy/reference/index.mdx diff --git a/packages/website/src/content/docs/main/reference/infrastructure-modules/overview/index.mdx b/packages/website/src/content/docs/main/reference/infrastructure-modules/overview/index.mdx deleted file mode 100644 index 67a1a9147..000000000 --- a/packages/website/src/content/docs/main/reference/infrastructure-modules/overview/index.mdx +++ /dev/null @@ -1,33 +0,0 @@ -# Overview - -This directory contains reference documentation for all the Panfactum OpenTofu (Terraform) modules which can be found -[here](https://github.com/Panfactum/stack/tree/__PANFACTUM_VERSION_MAIN__/packages/infrastructure). - -## Module Types - -We categorize each module into one of the following types: - -* **Direct:** Intended to be deployed directly into your system via Terragrunt. -* **Submodule:** Intended to be used as [child module](https://opentofu.org/docs/language/modules/) in your own OpenTofu modules. - -## Common Variables - -Many (not all) modules share these variables which mutate module behavior in a standard way. These are **not** -automatically injected by Terragrunt and require manual configuration, however we recommend setting them on -a regional or environmental basis using the `extra_inputs` [Terragrunt variable.](/docs/main/reference/configuration/terragrunt-variables#inputs) - -While these **are** documented on each module's individual reference page, we also provide a complete -list here for convenience: - -| Value | Type | Default | Description | -| ----------------------------- | --------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pull_through_cache_enabled` | `bool` | `false` | Whether to use the pull through cached provided by [aws\_ecr\_pull\_through\_cache](/docs/main/reference/infrastructure-modules/direct/aws/aws_ecr_pull_through_cache) for sourcing container images rather than directly pulling from public registries. | -| `node_image_cache_enabled` | `bool` | `false` | Whether to pre-pull images to every node. Requires the [kube\_fledged](/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_fledged) operator to have been deployed. | -| `sla_target` | `number` (`1`, `2`, or `3`) | `3` | The [uptime SLA level](/docs/main/guides/deploying-workloads/high-availability) that will be targeted in the module deployment. Trades off increased uptime for higher runtime costs. | -| `panfactum_scheduler_enabled` | `bool` | `true` | Whether to use the bin-packing scheduler provided by [kube\_scheduler](/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_scheduler). Using this will reduce cluster costs by approximately 25-33% with no additional impact, but requires the scheduler be deployed. | -| `vpa_enabled` | `bool` | `false` | Whether to automatically enable vertical pod autoscaling for the Pods in the Kubernetes module. Requires [kube\_vpa](/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_vpa) to have been deployed. | -| `monitoring_enabled` | `bool` | `false` | (Alpha) Whether to automatically install Prometheus scrapers and Grafana dashboards for the components in the module. Requires [kube\_monitoring](/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_monitoring) to have been deployed. | -| `canary_enabled` | `bool` | `false` | (Alpha) Whether to install synthetic healthchecks for the components in the module. Requires [kube\_argo](/docs/main/reference/infrastructure-modules/direct/kubernetes/kube_argo) to have been deployed. | -| `aws_iam_ip_allow_list` | `list(string)` | `[]` | All created IAM roles are only allowed to be used by internal IP addresses. This allows you to provide extra CIDR blocks from which IAM roles can be used. | -| `vault_domain` | `string` | N/A | The public domain name of Vault running in the cluster where the module is deployed. Used to set up federated authz/n. | -| `wait` | `boolean` | `true` | Set to `false` if you do not wish to wait for the resources to reach a ready state before proceeding with the deployment. This will significantly improve the speed of deploying updates but will disable automatic rollbacks in case something goes wrong. Manual intervention may be required if deployment fails. | diff --git a/packages/website/src/content/docs/main/sideNavSections.ts b/packages/website/src/content/docs/main/sideNavSections.ts index 8404569a3..51d2f4cd1 100644 --- a/packages/website/src/content/docs/main/sideNavSections.ts +++ b/packages/website/src/content/docs/main/sideNavSections.ts @@ -1,7 +1,7 @@ -import { makeModuleDir } from "@/components/layouts/docs/util/makeModuleDir.ts"; +import { makeFlatModuleList } from "@/components/layouts/docs/util/makeModuleList.ts"; -import modules from "./modules.json"; +import modules from "./modules/modules.json"; import { NavIcons, type TopLevelDocsSectionMetadata, @@ -430,6 +430,12 @@ export const SIDENAV_SECTIONS: TopLevelDocsSectionMetadata[] = [ }, ], }, + { + text: "Modules", + path: "/modules", + icon: NavIcons.analyze, + sub: makeFlatModuleList(modules.modules), + }, { text: "Reference", path: "/reference", @@ -465,63 +471,6 @@ export const SIDENAV_SECTIONS: TopLevelDocsSectionMetadata[] = [ }, ], }, - { - text: "Infrastructure Modules", - path: "/infrastructure-modules", - sub: [ - { - text: "Overview", - path: "/overview", - }, - { - text: "Direct Modules", - path: "/direct", - sub: [ - { - text: "AWS", - path: "/aws", - sub: makeModuleDir(modules.modules, "aws", "direct"), - }, - { - text: "Authentik", - path: "/authentik", - sub: makeModuleDir(modules.modules, "authentik", "direct"), - }, - { - text: "Kubernetes", - path: "/kubernetes", - sub: makeModuleDir(modules.modules, "kubernetes", "direct"), - }, - { - text: "Vault", - path: "/vault", - sub: makeModuleDir(modules.modules, "vault", "direct"), - }, - ], - }, - { - text: "Submodules", - path: "/submodule", - sub: [ - { - text: "AWS", - path: "/aws", - sub: makeModuleDir(modules.modules, "aws", "submodule"), - }, - { - text: "Kubernetes", - path: "/kubernetes", - sub: makeModuleDir(modules.modules, "kubernetes", "submodule"), - }, - { - text: "Workflows", - path: "/workflow", - sub: makeModuleDir(modules.modules, "workflow", "submodule"), - }, - ], - }, - ], - }, { text: "Resource Tags", path: "/resource-tags", diff --git a/packages/website/src/content/docs/stable-25-04/sideNavSections.ts b/packages/website/src/content/docs/stable-25-04/sideNavSections.ts index 6c2036aac..73ef99737 100644 --- a/packages/website/src/content/docs/stable-25-04/sideNavSections.ts +++ b/packages/website/src/content/docs/stable-25-04/sideNavSections.ts @@ -1,5 +1,5 @@ -import { makeModuleDir } from "@/components/layouts/docs/util/makeModuleDir.ts"; +import { makeModuleDir } from "@/components/layouts/docs/util/makeModuleList.ts"; import modules from "./modules.json"; import { diff --git a/packages/website/src/pages/docs/index.astro b/packages/website/src/pages/docs/index.astro new file mode 100644 index 000000000..88347c3d2 --- /dev/null +++ b/packages/website/src/pages/docs/index.astro @@ -0,0 +1,4 @@ +--- +// Redirect from /changelog to /changelog/0 (first page) +return Astro.redirect('/docs/changelog/edge/0'); +--- \ No newline at end of file