diff --git a/.github/workflows/generate-pricing-list.yml b/.github/workflows/generate-pricing-list.yml new file mode 100644 index 00000000..ab9dc301 --- /dev/null +++ b/.github/workflows/generate-pricing-list.yml @@ -0,0 +1,42 @@ +name: Pricing List +on: + workflow_dispatch: + inputs: + spreadsheet_uri: + description: Link of the spreadsheet containing subscription details. + type: string + default: https://docs.google.com/spreadsheets/d/1Ck_5q7U_vLSIDTtplugG3pCVC5zugXgTHtO7T7-yL8g/pub?output=csv + schedule: + - cron: "0 0 * * *" +jobs: + fetch-pricing-list: + name: Fetch Pricing List + if: github.repository == 'layer5io/docs' + runs-on: ubuntu-22.04 + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 1 + - name: Set spreadsheet_uri as environment variable + run: echo "spreadsheet_uri=https://docs.google.com/spreadsheets/d/1Ck_5q7U_vLSIDTtplugG3pCVC5zugXgTHtO7T7-yL8g/pub?output=csv" >> $GITHUB_ENV + if: inputs.spreadsheet_uri != '' + echo "spreadsheet_uri=${{ inputs.spreadsheet_uri }}" >> $GITHUB_ENV + + - name: Dump pricing list from the spreadsheet + run: | + curl -L $spreadsheet_uri -o "./pricing-list.csv"; + - name: Create data folder + run: | + [ ! -d "./static/data/csv" ] && mkdir -p "./static/data/csv"; + mv pricing-list.csv static/data/csv/pricing-list.csv; + - name: Commit changes + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: Updated pricing-list data. + branch: master + commit_options: "--signoff" + commit_user_name: l5io + commit_user_email: ci@layer5.io + commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>author of the commit that triggered the run diff --git a/assets/scss/_pageinfo.scss b/assets/scss/_pageinfo.scss index 5d439ded..ca632375 100644 --- a/assets/scss/_pageinfo.scss +++ b/assets/scss/_pageinfo.scss @@ -22,4 +22,4 @@ margin-top: map-get($spacers, 5) !important; padding-top: map-get($spacers, 3) !important; } -} +} \ No newline at end of file diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index a3727ec8..dbe21fb9 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -381,6 +381,49 @@ a:not([href]):not([class]):hover { border-color: #00b39f; } +// front-matter +.matterinfo { + font-weight: $font-weight-medium; + background: $black; + font-family: "Open Sans"; + border-style: solid; + margin: 2rem auto; + padding: 1rem; + border-color: #00b39f; + border-radius: 10px; +} + +.heading { + font-size: 1.2rem; + color: #00b39f; +} + +.matterheader { + font-size: 1.2rem; + color: #00b39f; +} + +.matterinfo .plan-support { + display: flex; + align-items: center; +} + +.matterinfo .plan-support .support-icon { + width: 20px; + height: 20px; + margin-right: 10px; +} + +.plan-icon { + display: inline-block; +} + +.highlight{ + color: #00b39f; + font-weight: bold; + margin-left:10px +} + // Style alert boxes. .alert { diff --git a/content/en/cloud/identity/users/notification-preferences.md b/content/en/cloud/identity/users/notification-preferences.md index d7594d3c..6ba18ff8 100644 --- a/content/en/cloud/identity/users/notification-preferences.md +++ b/content/en/cloud/identity/users/notification-preferences.md @@ -6,6 +6,8 @@ categories: [Identity] tags: [users] --- +{{< front-matter feature_name="Notification Center" >}} + Layer5 Cloud offers a range of user-configurable preferences that allows you to control the types of email notifications you receive. How to set your notifications preferences diff --git a/content/en/cloud/self-hosted/planning/identity-services.md b/content/en/cloud/self-hosted/planning/identity-services.md index 0227121c..4f15cc84 100644 --- a/content/en/cloud/self-hosted/planning/identity-services.md +++ b/content/en/cloud/self-hosted/planning/identity-services.md @@ -5,6 +5,9 @@ categories: [Self-Hosted] tags: [identity] weight: 3 --- + +{{< front-matter feature_name="Authentication SAML" >}} + Layer5 Cloud offers a built-in identity provider (IDP), supporting OIDC for normal users and token-based authentication (access, ID, refresh tokens) for API clients with JSON Web Signature (JWS) for token signing. Layer5 Cloud users can sign-up via email and password in addition to social identity providers (Google and GitHub) via OAuth2. See [Getting Started with a Layer5 Account](../../getting-started/getting-started-with-layer5-account.md) for details. Layer5 Cloud identity services include features such as account recovery, email verification, automatica social sign-in account linking, and multi-factor authentication (coming soon). diff --git a/content/en/cloud/tutorials/gitops-snapshots.md b/content/en/cloud/tutorials/gitops-snapshots.md index 56062024..ab8dd7a7 100644 --- a/content/en/cloud/tutorials/gitops-snapshots.md +++ b/content/en/cloud/tutorials/gitops-snapshots.md @@ -6,6 +6,7 @@ category: GitOps weight: 4 --- +{{< front-matter feature_name="MeshMap Snapshots" >}} MeshMap Snapshots offer visual insights in every pull request. Verify your workload designs and Kubernetes cluster configurations prior to accepting and merging pull requests. diff --git a/content/en/meshmap/designer/comments/_index.md b/content/en/meshmap/designer/comments/_index.md index c9eab5c2..16f8fe73 100644 --- a/content/en/meshmap/designer/comments/_index.md +++ b/content/en/meshmap/designer/comments/_index.md @@ -7,6 +7,8 @@ categories: [Designer] tags: [designs, collaboration, review] --- +{{< front-matter feature_name="Design Reviews" >}} + ## Overview MeshMap's Designer offers enables you to place comments "inline" with your infrastructure as code. Use comments to offer feedback to team members, take detailed design notes, capture helpful tips for your team members, and include justification as to your infrastructure and application configuration decisions. Pay it forward to your future self by leaving comments for reference later. diff --git a/content/en/meshmap/getting-started/starting-helm.md b/content/en/meshmap/getting-started/starting-helm.md index b2bc5f99..95f48810 100644 --- a/content/en/meshmap/getting-started/starting-helm.md +++ b/content/en/meshmap/getting-started/starting-helm.md @@ -7,6 +7,8 @@ categories: [Designer] tags: [designs] --- +{{< front-matter feature_name="Application Import" >}} + Helm helps you manage Kubernetes applications. Helm Charts help you define, install, and upgrade even the most complex Kubernetes application. Starting a MeshMap design from a Helm chart is another way to get started with an entire application stack. diff --git a/layouts/shortcodes/front-matter.html b/layouts/shortcodes/front-matter.html new file mode 100644 index 00000000..a548d62e --- /dev/null +++ b/layouts/shortcodes/front-matter.html @@ -0,0 +1,46 @@ +{{ $feature_name := .Get "feature_name" }} +{{ $featuresYaml := readFile "static/data/csv/features.yml" }} +{{ $featuresData := unmarshal $featuresYaml }} +{{ $feature := index (where $featuresData.features "name" $feature_name) 0 }} +{{ $color := .Get "color" | default "primary" }} + +
+

Who can use this feature

+ + {{ if $feature }} + {{ $supported_plans := slice }} + {{ if $feature.personal }} + {{ $supported_plans = $supported_plans | append "Personal" }} + {{ end }} + {{ if $feature.team }} + {{ $supported_plans = $supported_plans | append "Team" }} + {{ end }} + {{ if $feature.enterprise }} + {{ $supported_plans = $supported_plans | append "Enterprise" }} + {{ end }} + + {{ $plan_count := len $supported_plans }} + + {{ if eq $plan_count 3 }} +
+ Icon + + Supported for all +
+ {{ else if eq $plan_count 1 }} +
+ Icon + + Supported on {{ index $supported_plans 0 }} Plan +
+ {{ else if gt $plan_count 1 }} +
+ Icon + + Supported on {{ delimit $supported_plans " and " }} Plans +
+ {{ end }} + {{ else }} +

Feature information not found

+ {{ end }} +
diff --git a/static/data/csv/features.yml b/static/data/csv/features.yml new file mode 100644 index 00000000..99090bf1 --- /dev/null +++ b/static/data/csv/features.yml @@ -0,0 +1,154 @@ +--- +features: + - name: Cloud Native Design Patterns + personal: true + team: true + enterprise: true + - name: Multiple Kubernetes Clusters + personal: true + team: true + enterprise: true + - name: Cluster Discovery + personal: true + team: true + enterprise: true + - name: Microservices Performance + personal: true + team: true + enterprise: true + - name: Load Generation + personal: true + team: true + enterprise: true + - name: Open Policy Agent Integration + personal: true + team: true + enterprise: true + - name: Continuous Service Monitoring + personal: true + team: true + enterprise: true + - name: Audit Trail + personal: true + team: true + enterprise: true + - name: Alert Generation + personal: true + team: true + enterprise: true + - name: mesheryctl Commands + personal: true + team: true + enterprise: true + - name: MeshMark + personal: true + team: true + enterprise: true + - name: Notification Center + personal: true + team: true + enterprise: true + - name: MeshMap Snapshots + personal: true + team: true + enterprise: true + - name: Application Import + personal: true + team: true + enterprise: true + - name: Authentication SAML + personal: false + team: false + enterprise: true + - name: Community Support + personal: true + team: true + enterprise: true + - name: Dry-run + personal: false + team: true + enterprise: true + - name: Design Reviews + personal: false + team: true + enterprise: true + - name: WASM Envoy Filter Management + personal: false + team: true + enterprise: true + - name: Visual Design + personal: false + team: true + enterprise: true + - name: Design Versioning + personal: false + team: true + enterprise: true + - name: Distributed Performance Analysis + personal: false + team: true + enterprise: true + - name: Performance Profiles + personal: false + team: true + enterprise: true + - name: Test User Flow Performance + personal: false + team: true + enterprise: true + - name: Built-in Roles + personal: false + team: true + enterprise: true + - name: Comparative Testing + personal: false + team: true + enterprise: true + - name: Calendaring + personal: false + team: true + enterprise: true + - name: Standard Support + personal: false + team: true + enterprise: true + - name: Add-ons + personal: false + team: true + enterprise: true + - name: User-defined Roles + personal: false + team: false + enterprise: true + - name: Self-hosted Deployment + personal: false + team: false + enterprise: true + - name: Traffic Replay + personal: false + team: false + enterprise: true + - name: Certificate Support in Performance Profiles + personal: false + team: false + enterprise: true + - name: Phone Support + personal: false + team: false + enterprise: true + - name: Organization and Team Management + personal: false + team: false + enterprise: true + - name: Team Chat + personal: false + team: false + enterprise: true + - name: Serverless Pricing + personal: false + team: false + enterprise: true + - name: Premium and Premium Plus Support + personal: false + team: false + enterprise: true \ No newline at end of file