diff --git a/README.md b/README.md index 51ad7689b4..28f4aaabfe 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,11 @@ You'll then navigate to `localhost:1313` within the web browser of your choice. If you identify something that is a major change, please file an [issue](https://github.com/chainguard-dev/edu/issues/new). If you identify a minor change like a typo that needs to be updated, or tech tooling that has a newer package, you are welcome to open a pull request for review from the team. +**Contributor Guides:** +- **[Tag Guidelines](docs/TAG_GUIDELINES.md)** - Complete approved tag taxonomy for Hugo tags +- **[Content Type Guide](docs/CONTENT_TYPE_GUIDE.md)** - How to classify content with `contentType` metadata +- **[Content Management Scripts](scripts/README.md)** - Tools for organizing and auditing content + ### Date Format In each post's header, the date format should follow year-month-day as `YYYY-MM-DD`. @@ -104,6 +109,37 @@ Tags are based on: You can review our current list of [Tags](https://edu.chainguard.dev/tags). +**→ See the complete [Tag Guidelines](docs/TAG_GUIDELINES.md) for the full approved tag taxonomy and usage rules.** + +### Content Type Classification + +All content pages must include a `contentType` field in the frontmatter to categorize the documentation type: + +```yaml +--- +title: "Your Page Title" +draft: false +tags: ["Tag1", "Tag2"] +contentType: "tutorial" +--- +``` + +**Valid content types:** +- `product-docs` - Chainguard product documentation (APIs, CLI reference, features) +- `tutorial` - Learning-oriented guides that teach through examples +- `how-to-guide` - Task-oriented instructions for specific problems +- `integration` - Third-party tool and platform integrations +- `conceptual` - Educational content explaining concepts and "why" + +**Quick decision guide:** +- Teaching a specific subject? → `tutorial` +- Solving a specific task? → `how-to-guide` +- Product reference documentation? → `product-docs` +- Explaining concepts? → `conceptual` +- Integrating with external tools? → `integration` + +**→ See the complete [Content Type Guide](docs/CONTENT_TYPE_GUIDE.md) for detailed definitions, examples, and a decision tree.** + ## Quick Reference for Contributors ### Pre-commit Hooks @@ -124,7 +160,8 @@ brew install aspell ``` **Resources:** -- 📖 [Complete Pre-commit Hook Guide for Contributors](docs/pre-commit-hook-guide.md) - Detailed guide with examples -- 📋 [Tag Guidelines](TAG_GUIDELINES.md) - Complete approved tag taxonomy -- 📝 [Custom Dictionary](.aspell.en.pws) - Technical terms for spell checker - +- [Complete Pre-commit Hook Guide for Contributors](docs/pre-commit-hook-guide.md) - Detailed guide with examples +- [Tag Guidelines](docs/TAG_GUIDELINES.md) - Complete approved tag taxonomy +- [Content Type Guide](docs/CONTENT_TYPE_GUIDE.md) - Documentation type taxonomy and usage +- [Custom Dictionary](.aspell.en.pws) - Technical terms for spell checker +- [Content Management Scripts](scripts/README.md) - Tools for content organization diff --git a/content/ai-docs-security.md b/content/ai-docs-security.md index 8209153517..957882a4ea 100644 --- a/content/ai-docs-security.md +++ b/content/ai-docs-security.md @@ -16,6 +16,7 @@ menu: parent: "" weight: 9999 hidden: true +contentType: "conceptual" --- ## Overview @@ -175,4 +176,4 @@ Build logs are public on GitHub Actions: - [Sigstore Documentation](https://docs.sigstore.dev/) - [Cosign Installation](https://docs.sigstore.dev/cosign/system_config/installation/) - [Supply Chain Security](https://slsa.dev/) -- [Chainguard Security Practices](https://www.chainguard.dev/security) \ No newline at end of file +- [Chainguard Security Practices](https://www.chainguard.dev/security) diff --git a/content/chainguard/_index.md b/content/chainguard/_index.md index 7c1475f413..a5bd4bb5ba 100644 --- a/content/chainguard/_index.md +++ b/content/chainguard/_index.md @@ -7,4 +7,5 @@ lastmod: 2020-10-06T08:48:23+00:00 draft: false images: [] weight: 1 +contentType: "product-docs" --- diff --git a/content/chainguard/administration/_index.md b/content/chainguard/administration/_index.md index 5773f7b394..0552aa1381 100644 --- a/content/chainguard/administration/_index.md +++ b/content/chainguard/administration/_index.md @@ -8,4 +8,5 @@ lastmod: 2023-10-26T08:48:45+00:00 draft: false images: [] weight: 050 ---- \ No newline at end of file +contentType: "product-docs" +--- diff --git a/content/chainguard/administration/api.md b/content/chainguard/administration/api.md index efbe0cbdce..0ff6fc4639 100644 --- a/content/chainguard/administration/api.md +++ b/content/chainguard/administration/api.md @@ -13,6 +13,7 @@ menu: docs: parent: "chainguard" weight: 100 +contentType: "product-docs" --- {{< openapi spec-url="/api.json" >}} diff --git a/content/chainguard/administration/assumable-ids/_index.md b/content/chainguard/administration/assumable-ids/_index.md index 1c2ac64b34..107f4ebfea 100644 --- a/content/chainguard/administration/assumable-ids/_index.md +++ b/content/chainguard/administration/assumable-ids/_index.md @@ -7,6 +7,7 @@ lastmod: 2025-01-16T15:22:20+01:00 draft: false images: [] weight: 030 +contentType: "product-docs" --- -Documentation and resources on Chainguard's Assumable Identities. \ No newline at end of file +Documentation and resources on Chainguard's Assumable Identities. diff --git a/content/chainguard/administration/assumable-ids/assumable-ids.md b/content/chainguard/administration/assumable-ids/assumable-ids.md index 0d89a5c14c..f60459f5bc 100644 --- a/content/chainguard/administration/assumable-ids/assumable-ids.md +++ b/content/chainguard/administration/assumable-ids/assumable-ids.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers"] images: [] weight: 005 +contentType: "product-docs" --- Both [`chainctl`](/chainguard/chainctl/) and the [Chainguard Console](https://console.chainguard.dev/) are useful tools for interacting with Chainguard. However, there may be times that you want to hand off certain administrative tasks to an automation system, like Buildkite or GitHub Actions. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/_index.md b/content/chainguard/administration/assumable-ids/identity-examples/_index.md index f4eae1683f..4391e5434b 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/_index.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/_index.md @@ -11,6 +11,7 @@ lastmod: 2023-12-07T08:48:45+00:00 draft: false images: [] weight: 20 +contentType: "integration" --- -Procedural tutorials outlining how to create and assume a Chainguard identity for various Continuous Integration systems. \ No newline at end of file +Procedural tutorials outlining how to create and assume a Chainguard identity for various Continuous Integration systems. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/aws-ec2-identity.md b/content/chainguard/administration/assumable-ids/identity-examples/aws-ec2-identity.md index cb044dfb78..7d1cb6aa89 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/aws-ec2-identity.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/aws-ec2-identity.md @@ -10,6 +10,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 012 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/assumable-ids/assumable-ids/) are identities that can be assumed by external applications or workflows in order to access Chainguard resources or perform certain actions. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/aws-lambda-identity.md b/content/chainguard/administration/assumable-ids/identity-examples/aws-lambda-identity.md index c2845ca1e2..9ae46e7b90 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/aws-lambda-identity.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/aws-lambda-identity.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 011 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/iam-organizations/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/bitbucket-identity.md b/content/chainguard/administration/assumable-ids/identity-examples/bitbucket-identity.md index d1b8e7a42b..77ee704266 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/bitbucket-identity.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/bitbucket-identity.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 020 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/iam-organizations/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/buildkite-identity.md b/content/chainguard/administration/assumable-ids/identity-examples/buildkite-identity.md index 3588701bb1..ac9cb62d07 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/buildkite-identity.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/buildkite-identity.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 015 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/iam-organizations/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/github-identity/index.md b/content/chainguard/administration/assumable-ids/identity-examples/github-identity/index.md index 8543cb0998..9fa0993bbe 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/github-identity/index.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/github-identity/index.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 005 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/iam-organizations/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/gitlab-identity.md b/content/chainguard/administration/assumable-ids/identity-examples/gitlab-identity.md index 82dccd2aad..8e110ba3cb 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/gitlab-identity.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/gitlab-identity.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 010 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/assumable-ids/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. @@ -368,4 +369,4 @@ Following that, all of the example resources created in this guide's Terraform i ## Learn more -For more information about how assumable identities work in Chainguard, check out our [conceptual overview of assumable identities](/chainguard/administration/iam-organizations/assumable-ids/). Additionally, the Terraform documentation includes a section on [recommended best practices](https://developer.hashicorp.com/terraform/cloud-docs/recommended-practices) which you can refer to if you'd like to build on this Terraform configuration for a production environment. Likewise, for more information on using GitLab CI/CD pipelines, we encourage you to check out the [official documentation on the subject](https://docs.gitlab.com/ee/ci/pipelines/). \ No newline at end of file +For more information about how assumable identities work in Chainguard, check out our [conceptual overview of assumable identities](/chainguard/administration/iam-organizations/assumable-ids/). Additionally, the Terraform documentation includes a section on [recommended best practices](https://developer.hashicorp.com/terraform/cloud-docs/recommended-practices) which you can refer to if you'd like to build on this Terraform configuration for a production environment. Likewise, for more information on using GitLab CI/CD pipelines, we encourage you to check out the [official documentation on the subject](https://docs.gitlab.com/ee/ci/pipelines/). diff --git a/content/chainguard/administration/assumable-ids/identity-examples/jenkins-chainctl/index.md b/content/chainguard/administration/assumable-ids/identity-examples/jenkins-chainctl/index.md index 1230915170..9948ecb1ae 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/jenkins-chainctl/index.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/jenkins-chainctl/index.md @@ -9,6 +9,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 025 +contentType: "integration" --- [Jenkins](https://www.jenkins.io/) is an open source automation server that supports building, deploying, and automating projects. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/jenkins-terraform/index.md b/content/chainguard/administration/assumable-ids/identity-examples/jenkins-terraform/index.md index 749984c83d..6f58c5cceb 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/jenkins-terraform/index.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/jenkins-terraform/index.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 030 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/iam-organizations/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/keycloak-identity.md b/content/chainguard/administration/assumable-ids/identity-examples/keycloak-identity.md index 273cf50558..5ee491a30b 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/keycloak-identity.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/keycloak-identity.md @@ -14,6 +14,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 040 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/iam-organizations/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. diff --git a/content/chainguard/administration/assumable-ids/identity-examples/kubernetes-identity/index.md b/content/chainguard/administration/assumable-ids/identity-examples/kubernetes-identity/index.md index d010348c12..b0e2de3815 100644 --- a/content/chainguard/administration/assumable-ids/identity-examples/kubernetes-identity/index.md +++ b/content/chainguard/administration/assumable-ids/identity-examples/kubernetes-identity/index.md @@ -11,6 +11,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 012 +contentType: "integration" --- Chainguard's [*assumable identities*](/chainguard/administration/iam-organizations/assumable-ids/) diff --git a/content/chainguard/administration/cloudevents/_index.md b/content/chainguard/administration/cloudevents/_index.md index e036333dee..5f02341fd4 100644 --- a/content/chainguard/administration/cloudevents/_index.md +++ b/content/chainguard/administration/cloudevents/_index.md @@ -8,6 +8,7 @@ lastmod: 2025-01-07T15:22:20+01:00 draft: false images: [] weight: 020 +contentType: "product-docs" --- Documentation and resources explaining what Chainguard [CloudEvents](https://cloudevents.io/) are and how to use them. diff --git a/content/chainguard/administration/cloudevents/events-example.md b/content/chainguard/administration/cloudevents/events-example.md index d24f520e67..9b5fe3d005 100644 --- a/content/chainguard/administration/cloudevents/events-example.md +++ b/content/chainguard/administration/cloudevents/events-example.md @@ -13,6 +13,7 @@ menu: parent: "cloudevents" weight: 010 toc: true +contentType: "how-to-guide" --- Chainguard implements [CloudEvents](/chainguard/administration/cloudevents/events-reference/), a specification for a standard format for events data. This means developers can use events (generated based on interactions with Chainguard resources) to initiate processes and thus automate certain actions. For example, you could set up infrastructure to listen for push events to an organization's private registry and [mirror any new Chainguard Containers in the registry to a third-party repository](/chainguard/administration/cloudevents/image-copy-gcr/). diff --git a/content/chainguard/administration/cloudevents/events-reference.md b/content/chainguard/administration/cloudevents/events-reference.md index 3e49e375f8..56cd16580f 100644 --- a/content/chainguard/administration/cloudevents/events-reference.md +++ b/content/chainguard/administration/cloudevents/events-reference.md @@ -9,6 +9,7 @@ draft: false tags: ["Platform", "Reference", "Product"] images: [] weight: 005 +contentType: "product-docs" --- Chainguard generates and emits [CloudEvents](https://cloudevents.io/) based on actions that occur within a Chainguard account, such as registering a Kubernetes cluster or creating an IAM invitation. Chainguard also emits events when workloads or policies are changed in a cluster. diff --git a/content/chainguard/administration/cloudevents/image-copy-gcr/index.md b/content/chainguard/administration/cloudevents/image-copy-gcr/index.md index 19bc9224af..b1f990041e 100644 --- a/content/chainguard/administration/cloudevents/image-copy-gcr/index.md +++ b/content/chainguard/administration/cloudevents/image-copy-gcr/index.md @@ -13,6 +13,7 @@ menu: parent: "cloudevents" weight: 015 toc: true +contentType: "how-to-guide" --- Certain interactions with Chainguard resources will emit [CloudEvents](/chainguard/administration/cloudevents/events-reference/) that you or an application can subscribe to. This allows you to do things like receive alerts when a user downloads one or more of your organization's private container images or when a new image gets added to your organization's registry. diff --git a/content/chainguard/administration/custom-idps/_index.md b/content/chainguard/administration/custom-idps/_index.md index e08cf987c6..d0ab13f4c8 100644 --- a/content/chainguard/administration/custom-idps/_index.md +++ b/content/chainguard/administration/custom-idps/_index.md @@ -7,6 +7,7 @@ lastmod: 2023-04-13T08:49:15+00:00 draft: false images: [] weight: 045 +contentType: "integration" --- -Example tutorials on integrating various Identity Providers (IDPs) with Chainguard. \ No newline at end of file +Example tutorials on integrating various Identity Providers (IDPs) with Chainguard. diff --git a/content/chainguard/administration/custom-idps/custom-idps/index.md b/content/chainguard/administration/custom-idps/custom-idps/index.md index 90a6832c19..31cba50a73 100644 --- a/content/chainguard/administration/custom-idps/custom-idps/index.md +++ b/content/chainguard/administration/custom-idps/custom-idps/index.md @@ -13,6 +13,7 @@ draft: false tags: ["Chainguard Containers", "Overview"] images: [] weight: 005 +contentType: "integration" --- The Chainguard platform supports Single Sign-on (SSO) authentication for users. By default, users can log in with GitHub, GitLab, and Google, but SSO support allows users to bring their own identity provider for authentication. This is helpful when your organization mandates using a corporate identity provider — like Okta or Azure Active Directory — to authenticate to SaaS products. diff --git a/content/chainguard/administration/custom-idps/idp-providers/_index.md b/content/chainguard/administration/custom-idps/idp-providers/_index.md index 13c684cff9..a2057269a0 100644 --- a/content/chainguard/administration/custom-idps/idp-providers/_index.md +++ b/content/chainguard/administration/custom-idps/idp-providers/_index.md @@ -7,4 +7,5 @@ lastmod: 2025-01-16T08:49:15+00:00 draft: false images: [] weight: 010 ---- \ No newline at end of file +contentType: "integration" +--- diff --git a/content/chainguard/administration/custom-idps/idp-providers/keycloak/index.md b/content/chainguard/administration/custom-idps/idp-providers/keycloak/index.md index 978f9569d1..8eb7512701 100644 --- a/content/chainguard/administration/custom-idps/idp-providers/keycloak/index.md +++ b/content/chainguard/administration/custom-idps/idp-providers/keycloak/index.md @@ -10,6 +10,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 020 +contentType: "integration" --- By default, the Chainguard platform supports Single sign-on (SSO) authentication for users with GitHub, GitLab, and Google. diff --git a/content/chainguard/administration/custom-idps/idp-providers/ms-entra-id/index.md b/content/chainguard/administration/custom-idps/idp-providers/ms-entra-id/index.md index 8610739526..f1eb824429 100644 --- a/content/chainguard/administration/custom-idps/idp-providers/ms-entra-id/index.md +++ b/content/chainguard/administration/custom-idps/idp-providers/ms-entra-id/index.md @@ -15,6 +15,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 020 +contentType: "integration" --- The Chainguard platform supports Single sign-on (SSO) authentication for users. By default, users can log in with GitHub, GitLab and Google, but SSO support allows users to bring their own identity provider for authentication. diff --git a/content/chainguard/administration/custom-idps/idp-providers/okta/index.md b/content/chainguard/administration/custom-idps/idp-providers/okta/index.md index 231933e829..30280a37d1 100644 --- a/content/chainguard/administration/custom-idps/idp-providers/okta/index.md +++ b/content/chainguard/administration/custom-idps/idp-providers/okta/index.md @@ -14,6 +14,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 010 +contentType: "integration" --- The Chainguard platform supports Single sign-on (SSO) authentication for users. By default, users can log in with GitHub, GitLab and Google, but SSO support allows users to bring their own identity provider for authentication. diff --git a/content/chainguard/administration/custom-idps/idp-providers/ping-id/index.md b/content/chainguard/administration/custom-idps/idp-providers/ping-id/index.md index f9afb7b1a1..f1a35e8e96 100644 --- a/content/chainguard/administration/custom-idps/idp-providers/ping-id/index.md +++ b/content/chainguard/administration/custom-idps/idp-providers/ping-id/index.md @@ -14,6 +14,7 @@ draft: false tags: ["Chainguard Containers", "Procedural"] images: [] weight: 015 +contentType: "integration" --- The Chainguard platform supports Single sign-on (SSO) authentication for users. By default, users can log in with GitHub, GitLab and Google, but SSO support allows users to bring their own identity provider for authentication. diff --git a/content/chainguard/administration/iam-organizations/_index.md b/content/chainguard/administration/iam-organizations/_index.md index ee12f68a05..030e690df4 100644 --- a/content/chainguard/administration/iam-organizations/_index.md +++ b/content/chainguard/administration/iam-organizations/_index.md @@ -7,6 +7,7 @@ lastmod: 2025-01-07T15:22:20+01:00 draft: false images: [] weight: 010 +contentType: "product-docs" --- -Tutorials on IAM and Organizations \ No newline at end of file +Tutorials on IAM and Organizations diff --git a/content/chainguard/administration/iam-organizations/how-to-manage-iam-organizations-in-chainguard.md b/content/chainguard/administration/iam-organizations/how-to-manage-iam-organizations-in-chainguard.md index c698e942f9..a8ba7f5b08 100644 --- a/content/chainguard/administration/iam-organizations/how-to-manage-iam-organizations-in-chainguard.md +++ b/content/chainguard/administration/iam-organizations/how-to-manage-iam-organizations-in-chainguard.md @@ -17,6 +17,7 @@ menu: parent: "iam-organizations" weight: 010 toc: true +contentType: "product-docs" --- Chainguard provides a rich Identity and Access Management (IAM) model similar to those used by AWS and GCP. This guide outlines how to manage Chainguard's IAM structures with the [`chainctl` command line tool](/chainguard/chainctl/). diff --git a/content/chainguard/administration/iam-organizations/overview-of-chainguard-iam-model.md b/content/chainguard/administration/iam-organizations/overview-of-chainguard-iam-model.md index e22bfa69c0..31edc20ee1 100644 --- a/content/chainguard/administration/iam-organizations/overview-of-chainguard-iam-model.md +++ b/content/chainguard/administration/iam-organizations/overview-of-chainguard-iam-model.md @@ -17,6 +17,7 @@ menu: parent: "iam-organizations" weight: 005 toc: true +contentType: "product-docs" --- Chainguard's Identity and Access Management (IAM) model enables more secure, fine-grained control over container registries and security resources, using familiar concepts from cloud providers like AWS and GCP. This enterprise-grade IAM system allows organizations to implement least-privilege access, delegate permissions, and integrate with existing identity providers for seamless authentication and authorization. diff --git a/content/chainguard/administration/iam-organizations/roles-role-bindings/_index.md b/content/chainguard/administration/iam-organizations/roles-role-bindings/_index.md index 9efb5cda81..ccbd4289b8 100644 --- a/content/chainguard/administration/iam-organizations/roles-role-bindings/_index.md +++ b/content/chainguard/administration/iam-organizations/roles-role-bindings/_index.md @@ -7,6 +7,7 @@ lastmod: 2025-01-16T15:22:20+01:00 draft: false images: [] weight: 020 +contentType: "product-docs" --- -Documentation and resources on roles and role-bindings within the context of the Chainguard platform. \ No newline at end of file +Documentation and resources on roles and role-bindings within the context of the Chainguard platform. diff --git a/content/chainguard/administration/iam-organizations/roles-role-bindings/capabilities-reference.md b/content/chainguard/administration/iam-organizations/roles-role-bindings/capabilities-reference.md index 8f774a5bec..9fe0ed2764 100644 --- a/content/chainguard/administration/iam-organizations/roles-role-bindings/capabilities-reference.md +++ b/content/chainguard/administration/iam-organizations/roles-role-bindings/capabilities-reference.md @@ -10,6 +10,7 @@ draft: false tags: ["IAM", "Reference", "Product"] images: [] weight: 010 +contentType: "product-docs" --- Chainguard provides customers with a set of built-in roles as part of its Identity and Access Management (IAM) system. These roles have different permissions and capabilities that allow them to serve specialized purposes, from general administrative access to access for specific resources like registries, APK packages, and programming language libraries. diff --git a/content/chainguard/administration/iam-organizations/roles-role-bindings/rolebinding-terraform-gh/index.md b/content/chainguard/administration/iam-organizations/roles-role-bindings/rolebinding-terraform-gh/index.md index b2aa4930d4..8145606ccd 100644 --- a/content/chainguard/administration/iam-organizations/roles-role-bindings/rolebinding-terraform-gh/index.md +++ b/content/chainguard/administration/iam-organizations/roles-role-bindings/rolebinding-terraform-gh/index.md @@ -12,6 +12,7 @@ draft: false tags: ["Chainguard Console", "Procedural"] images: [] weight: 010 +contentType: "how-to-guide" --- There may be cases where an organization will want multiple users to have access to the same Chainguard organization. Chainguard allows you to grant other users access to Chainguard by [generating an invite link or code](/chainguard/administration/iam-organizations/how-to-manage-iam-organizations-in-chainguard/#inviting-others-to-an-organization). diff --git a/content/chainguard/administration/iam-organizations/roles-role-bindings/roles-role-bindings.md b/content/chainguard/administration/iam-organizations/roles-role-bindings/roles-role-bindings.md index 270e7ef343..f519bf4eb3 100644 --- a/content/chainguard/administration/iam-organizations/roles-role-bindings/roles-role-bindings.md +++ b/content/chainguard/administration/iam-organizations/roles-role-bindings/roles-role-bindings.md @@ -10,6 +10,7 @@ draft: false tags: ["chainctl", "Overview"] images: [] weight: 005 +contentType: "product-docs" --- In the context of Chainguard, an *identity* represents an individual user within an organization. Chainguard's IAM model allows administrators to assign identities to specialized *roles* which define the level of access that an identity has to the organization's resources. You assign a role by creating a *role-binding*, which is what ties an identity to a given role. diff --git a/content/chainguard/administration/iam-organizations/verified-orgs.md b/content/chainguard/administration/iam-organizations/verified-orgs.md index 7a96d8459c..8e8a1c389e 100644 --- a/content/chainguard/administration/iam-organizations/verified-orgs.md +++ b/content/chainguard/administration/iam-organizations/verified-orgs.md @@ -13,6 +13,7 @@ menu: parent: "iam-organizations" weight: 015 toc: true +contentType: "product-docs" --- Resources on the Chainguard platform are organized in a hierarchical structure called [IAM Organizations](https://edu.chainguard.dev/chainguard/administration/iam-organizations/overview-of-chainguard-iam-model/). Single customers or organizations typically use a single root-level _Organization_ to manage their diff --git a/content/chainguard/administration/sdk-authentication.md b/content/chainguard/administration/sdk-authentication.md index 7cdc2e33e8..3355a82aa7 100644 --- a/content/chainguard/administration/sdk-authentication.md +++ b/content/chainguard/administration/sdk-authentication.md @@ -10,6 +10,7 @@ tags: ["Chainguard Console", "Procedural"] images: [] toc: true weight: 065 +contentType: "product-docs" --- There are several ways for users to interact with the Chainguard platform, with [`chainctl`](/chainguard/chainctl/) (Chainguard's command-line tool) and the [Chainguard Console](https://console.chainguard.dev/overview) (Chainguard's web interface) being the two most commonly-used methods. However, both of these require a human user to authenticate, and aren't useful for working with Chainguard resources programmatically. @@ -187,4 +188,4 @@ To learn more, you may be interested in the following resources: * [Overview of Assumable Identities in Chainguard](/chainguard/administration/assumable-ids/assumable-ids/) * [Authenticate to Chainguard's Registry](/chainguard/chainguard-registry/authenticating/) -* [Chainguard OpenAPI Specification](/chainguard/administration/api/) \ No newline at end of file +* [Chainguard OpenAPI Specification](/chainguard/administration/api/) diff --git a/content/chainguard/administration/terraform-provider/index.md b/content/chainguard/administration/terraform-provider/index.md index c89905df65..39eabd8c99 100644 --- a/content/chainguard/administration/terraform-provider/index.md +++ b/content/chainguard/administration/terraform-provider/index.md @@ -13,6 +13,7 @@ menu: parent: "administration" toc: true weight: 008 +contentType: "tutorial" --- [Terraform](https://www.terraform.io/) is an infrastructure as code tool that allows users to declaratively configure resources in cloud providers like AWS and GCP, SaaS platforms, and many other API-driven environments. [Terraform providers](https://developer.hashicorp.com/terraform/language/providers) are written by third-party developers to allow Terraform to manage resources in their environment. diff --git a/content/chainguard/chainctl-usage/_index.md b/content/chainguard/chainctl-usage/_index.md index e21f110fe8..ab564cfb50 100644 --- a/content/chainguard/chainctl-usage/_index.md +++ b/content/chainguard/chainctl-usage/_index.md @@ -9,6 +9,7 @@ draft: false tags: ["chainctl", "Overview"] images: [] weight: 060 +contentType: "product-docs" --- Chainguard's `chainctl` (Chainguard Control) is a command-line interface that provides comprehensive control over your Chainguard resources, including container images, identity management, and security configurations. This CLI tool enables automation and advanced operations beyond what's available in the [Chainguard Console](https://console.chainguard.dev), making it essential for DevOps workflows and CI/CD integration. diff --git a/content/chainguard/chainctl-usage/chainctl-events.md b/content/chainguard/chainctl-usage/chainctl-events.md index 7b27c95a12..3ffe438648 100644 --- a/content/chainguard/chainctl-usage/chainctl-events.md +++ b/content/chainguard/chainctl-usage/chainctl-events.md @@ -9,6 +9,7 @@ draft: false tags: ["chainctl"] images: [] weight: 050 +contentType: "how-to-guide" --- Chainguard's `chainctl events` commands provide programmatic access to security event streams using the [CloudEvents](https://cloudevents.io/) specification. These commands enable you to monitor container activities, security alerts, and supply chain events across your organization for enhanced observability and compliance. @@ -50,4 +51,4 @@ To delete an existing event, use: chainctl events subscriptions delete $SUBSCRIPTION_ID ``` -Depending on the sink, you may be prompted to respond to some questions before this action is complete. You can add a `-y` to the command to automatically assume `yes` and run without interaction. \ No newline at end of file +Depending on the sink, you may be prompted to respond to some questions before this action is complete. You can add a `-y` to the command to automatically assume `yes` and run without interaction. diff --git a/content/chainguard/chainctl-usage/chainctl-iam.md b/content/chainguard/chainctl-usage/chainctl-iam.md index c19c338a41..9d52b98743 100644 --- a/content/chainguard/chainctl-usage/chainctl-iam.md +++ b/content/chainguard/chainctl-usage/chainctl-iam.md @@ -9,6 +9,7 @@ draft: false tags: ["chainctl", "iam"] images: [] weight: 060 +contentType: "how-to-guide" --- Chainguard's identity and access management (IAM) system provides fine-grained control over container registries, security resources, and organizational permissions. The `chainctl iam` commands enable you to manage users, roles, identities, and access policies programmatically for enhanced security and compliance. diff --git a/content/chainguard/chainctl-usage/chainctl-images.md b/content/chainguard/chainctl-usage/chainctl-images.md index 2f9db7d27b..85fcacae70 100644 --- a/content/chainguard/chainctl-usage/chainctl-images.md +++ b/content/chainguard/chainctl-usage/chainctl-images.md @@ -11,6 +11,7 @@ draft: false tags: ["chainctl"] images: [] weight: 070 +contentType: "how-to-guide" --- Chainguard's `chainctl images` commands provide comprehensive tools for managing security-hardened container images in your organization's registry. These commands enable you to discover available images, analyze version histories, examine security metadata, and compare different image versions to make informed deployment decisions. diff --git a/content/chainguard/chainctl-usage/chainctl-version-update.md b/content/chainguard/chainctl-usage/chainctl-version-update.md index c74e2aa533..62a6df3f9f 100644 --- a/content/chainguard/chainctl-usage/chainctl-version-update.md +++ b/content/chainguard/chainctl-usage/chainctl-version-update.md @@ -9,6 +9,7 @@ draft: false tags: ["chainctl"] images: [] weight: 040 +contentType: "how-to-guide" --- Chainguard regularly releases updates to `chainctl` with new security features, performance improvements, and expanded capabilities for container management. This guide explains how to check your current version and update to the latest release. @@ -136,4 +137,4 @@ Platform: linux/amd64 Temporary files may need to be removed manually: rm -f /root/.cache/chainctl/chainctl.bak -``` \ No newline at end of file +``` diff --git a/content/chainguard/chainctl-usage/comparing-chainctl-to-console/index.md b/content/chainguard/chainctl-usage/comparing-chainctl-to-console/index.md index d4835ed9d9..952efcc6b9 100644 --- a/content/chainguard/chainctl-usage/comparing-chainctl-to-console/index.md +++ b/content/chainguard/chainctl-usage/comparing-chainctl-to-console/index.md @@ -13,6 +13,7 @@ menu: parent: "chainctl-usage" weight: 025 toc: true +contentType: "conceptual" --- Chainguard provides two powerful interfaces for managing container security resources: the web-based Console for visual exploration and the `chainctl` CLI for automation and scripting. Understanding when to use each tool maximizes your efficiency in managing Chainguard's security-hardened containers and access controls. @@ -158,4 +159,4 @@ This is a feature unique to the Console and is described in detail in [Using CVE ### Compare Two Chainguard Containers With chainctl -This is a feature unique to `chainctl` and is described in detail in [How To Compare Chainguard Containers with chainctl](/chainguard/chainctl-usage/comparing-images/). \ No newline at end of file +This is a feature unique to `chainctl` and is described in detail in [How To Compare Chainguard Containers with chainctl](/chainguard/chainctl-usage/comparing-images/). diff --git a/content/chainguard/chainctl-usage/comparing-images.md b/content/chainguard/chainctl-usage/comparing-images.md index c62bf96bf4..2b958d1a65 100644 --- a/content/chainguard/chainctl-usage/comparing-images.md +++ b/content/chainguard/chainctl-usage/comparing-images.md @@ -20,6 +20,7 @@ menu: parent: "chainguard-images" weight: 045 toc: true +contentType: "how-to-guide" --- Chainguard's `chainctl images diff` command provides detailed comparisons between container image versions, enabling you to track security improvements, package updates, and vulnerability changes across builds. This powerful feature helps you understand exactly what changes between image versions, whether comparing daily builds, analyzing CVE remediation, or evaluating custom image updates. diff --git a/content/chainguard/chainctl-usage/getting-started-with-chainctl.md b/content/chainguard/chainctl-usage/getting-started-with-chainctl.md index 60a18ba6ed..0e368e7f06 100644 --- a/content/chainguard/chainctl-usage/getting-started-with-chainctl.md +++ b/content/chainguard/chainctl-usage/getting-started-with-chainctl.md @@ -9,6 +9,7 @@ draft: false tags: ["chainctl", "Getting Started"] images: [] weight: 020 +contentType: "tutorial" --- Chainguard's `chainctl` provides command-line access to manage container images, identity resources, and security configurations across your organization. This guide covers essential commands to begin using `chainctl` effectively in your security and DevOps workflows. For comprehensive command documentation, see the [chainctl Reference](/chainguard/chainctl/). diff --git a/content/chainguard/chainctl-usage/how-to-install-chainctl.md b/content/chainguard/chainctl-usage/how-to-install-chainctl.md index c68841bf27..13b5597376 100644 --- a/content/chainguard/chainctl-usage/how-to-install-chainctl.md +++ b/content/chainguard/chainctl-usage/how-to-install-chainctl.md @@ -16,6 +16,7 @@ menu: parent: "administration" toc: true weight: 010 +contentType: "how-to-guide" --- Chainguard's `chainctl` command-line interface provides essential tools for managing your container security infrastructure, including image management, identity and access control, and resource monitoring. This CLI enables automation of Chainguard operations and integration with CI/CD pipelines. diff --git a/content/chainguard/chainctl-usage/manage-chainctl-config.md b/content/chainguard/chainctl-usage/manage-chainctl-config.md index 796ca063a4..f129674c91 100644 --- a/content/chainguard/chainctl-usage/manage-chainctl-config.md +++ b/content/chainguard/chainctl-usage/manage-chainctl-config.md @@ -15,6 +15,7 @@ menu: parent: "administration" toc: true weight: 030 +contentType: "how-to-guide" --- Chainguard's `chainctl` configuration management enables you to customize CLI behavior, set default organizations, configure output formats, and optimize your workflow for managing container security resources. Proper configuration ensures efficient interaction with Chainguard's platform across different environments and use cases. diff --git a/content/chainguard/chainctl/_index.md b/content/chainguard/chainctl/_index.md index 3a9d2586b3..58b018bae5 100644 --- a/content/chainguard/chainctl/_index.md +++ b/content/chainguard/chainctl/_index.md @@ -9,6 +9,7 @@ draft: false tags: ["chainctl", "Reference"] images: [] weight: 070 +contentType: "product-docs" --- The CLI tool `chainctl` helps you interact with the account model that Chainguard provides. The tool uses the familiar ` ` style of CLI interactions. Below find the current reference for `chainctl`. @@ -16,4 +17,4 @@ The CLI tool `chainctl` helps you interact with the account model that Chainguar To install `chainctl`, follow our [installation guide](/chainguard/chainctl-usage/how-to-install-chainctl/). Additionally, you may find these resources on working with `chainctl` to be of interest: * [How to Manage chainctl Configuration](https://edu.chainguard.dev/chainguard/chainctl-usage/manage-chainctl-config/) -* [How To Compare Chainguard Containers with chainctl](https://edu.chainguard.dev/chainguard/chainguard-images/how-to-use/comparing-images/) \ No newline at end of file +* [How To Compare Chainguard Containers with chainctl](https://edu.chainguard.dev/chainguard/chainguard-images/how-to-use/comparing-images/) diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl.md b/content/chainguard/chainctl/chainctl-docs/chainctl.md index 409d56d3eb..802c17d165 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth.md index 123d5cc34f..deb93ffbb5 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_configure-docker.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_configure-docker.md index a666e0553c..ae7cedd9ab 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_configure-docker.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_configure-docker.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth configure-docker diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_delete-account.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_delete-account.md index 3464b2c7e7..8c2b3671a8 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_delete-account.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_delete-account.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth delete-account diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_login.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_login.md index dfc5caec84..13fc54bd94 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_login.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_login.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth login diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_logout.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_logout.md index c2af68a1af..a95a1aca17 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_logout.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_logout.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth logout diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token.md index 1abb173428..d2c819273d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth pull-token diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_create.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_create.md index bbd4ee4617..d091520e78 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_create.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_create.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth pull-token create diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_list.md index 7ca5421140..fc3fced4ef 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_pull-token_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth pull-token list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_status.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_status.md index 5f4b379d12..51e3be7ba8 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_status.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_status.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth status diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token.md index f99de81cd6..2d934f6788 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth token diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token_capabilities.md b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token_capabilities.md index 46e915253f..cc9741dc89 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token_capabilities.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_auth_token_capabilities.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl auth token capabilities diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config.md index 1d57a36ee5..d11eecf0f7 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config_edit.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config_edit.md index 6b8f5e6d61..1980c0ad10 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config_edit.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config_edit.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config edit diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config_reset.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config_reset.md index fc88cf76e2..8fa1a8ecba 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config_reset.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config_reset.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config reset diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config_save.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config_save.md index 0c62814291..b7f39141b7 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config_save.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config_save.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config save diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config_set.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config_set.md index 197d48a454..beed41938d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config_set.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config_set.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config set diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config_unset.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config_unset.md index e1af0eea81..1d50214317 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config_unset.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config_unset.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config unset diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config_validate.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config_validate.md index 268cdaf477..5066291457 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config_validate.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config_validate.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config validate diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_config_view.md b/content/chainguard/chainctl/chainctl-docs/chainctl_config_view.md index 4a7ff63c08..243d39c49e 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_config_view.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_config_view.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl config view diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_events.md b/content/chainguard/chainctl/chainctl-docs/chainctl_events.md index 6a9ca4cea5..c3ad8fbff6 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_events.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_events.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl events diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions.md b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions.md index 8cb26694d3..d6ef73dcdb 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl events subscriptions diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_create.md b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_create.md index eaa8dd93f1..6b8f90a418 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_create.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_create.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl events subscriptions create diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_delete.md index 0c26d4edb0..a41de7ddd3 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl events subscriptions delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_list.md index 74a8225dc8..ad8d57fb76 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_events_subscriptions_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl events subscriptions list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam.md index 47af9c4b0e..18c65d6481 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations.md index 08e9663070..81c48b0fd2 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check.md index 5f49fac5c8..d9a4556d87 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations check diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_aws.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_aws.md index e5723d1479..f95a260e9c 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_aws.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_aws.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations check aws diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_azure.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_azure.md index 3f70e6271d..7db369a5c6 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_azure.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_azure.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations check azure diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_gcp.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_gcp.md index 0299ff13bf..cd8fef047d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_gcp.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_check_gcp.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations check gcp diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_describe.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_describe.md index 4d1d22fb4f..b8e291e358 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_describe.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_describe.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations describe diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set.md index b931e188a8..26f39df26d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations set diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_aws.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_aws.md index 26e2dcbc33..2ff52ce358 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_aws.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_aws.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations set aws diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_azure.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_azure.md index a6a420e025..58982176a0 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_azure.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_azure.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations set azure diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_gcp.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_gcp.md index 888e3b16a1..16e259348c 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_gcp.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_set_gcp.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations set gcp diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset.md index 9a2831f135..652d32155a 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations unset diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_aws.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_aws.md index fc7f3b0300..1882d7319a 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_aws.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_aws.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations unset aws diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_azure.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_azure.md index cb54a7f2b7..4663b7764d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_azure.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_azure.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations unset azure diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_gcp.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_gcp.md index f45a7230f8..e2369b3da9 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_gcp.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_account-associations_unset_gcp.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam account-associations unset gcp diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders.md index b4978b025f..1d153c4604 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam folders diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_delete.md index 12f37257b0..5c21e4759d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam folders delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_describe.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_describe.md index e1c8243a27..65a4c96409 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_describe.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_describe.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam folders describe diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_list.md index 410b697c8e..5c2b73e363 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam folders list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_update.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_update.md index 330a625a8f..072fc92e2a 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_update.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_folders_update.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam folders update diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities.md index 043b5a79ea..dbb94708cd 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create.md index c709088ddf..7af051d035 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities create diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_github.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_github.md index a842c237f8..a70d0f08cd 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_github.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_github.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities create github diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_gitlab.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_gitlab.md index 4c294feb9d..c39f8368a9 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_gitlab.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_create_gitlab.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities create gitlab diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_delete.md index 49a098f5ee..1662ceb505 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_describe.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_describe.md index fd553b36d2..51979b2a2a 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_describe.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_describe.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities describe diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_list.md index db62a93df2..b242530724 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_update.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_update.md index 2a0b9c072f..1d71d428f3 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_update.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identities_update.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identities update diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers.md index 4c5794605a..655f040f7e 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identity-providers diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_create.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_create.md index 3690a58420..1690057d77 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_create.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_create.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identity-providers create diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_delete.md index bed7aca2c1..905abc62ae 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identity-providers delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_list.md index 1ccca7bc02..4df3b40ce2 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identity-providers list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_update.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_update.md index 29e34eb50b..a0c636822b 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_update.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_identity-providers_update.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam identity-providers update diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites.md index 72f49b0666..cfef4915de 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam invites diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_create.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_create.md index b2f12ff5ce..74c6c6f027 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_create.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_create.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam invites create diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_delete.md index 414af9ea3c..10f4034509 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam invites delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_list.md index a8c1a2eea0..40d7cbfe6d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_invites_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam invites list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations.md index fbd18b3fc5..2fc0cf8e0b 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam organizations diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_delete.md index ab8be2348d..2073d80287 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam organizations delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_describe.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_describe.md index e82017157f..9f36977a88 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_describe.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_describe.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam organizations describe diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_list.md index bdc80fb462..b87a7c3af9 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_organizations_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam organizations list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings.md index 0fe5ec2b48..b5d06424eb 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam role-bindings diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_create.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_create.md index ad85c6a5f8..ca87be0897 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_create.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_create.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam role-bindings create diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_delete.md index 4fb9540828..8081a4ff85 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam role-bindings delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_list.md index eb7d108926..cceec7b148 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam role-bindings list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_update.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_update.md index 7380a54ed5..60b58e726b 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_update.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_role-bindings_update.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam role-bindings update diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles.md index 6110e59434..89ea3de155 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam roles diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities.md index baf9c0f208..795e309c97 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam roles capabilities diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities_list.md index 6b5b174a7f..28eede1b21 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_capabilities_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam roles capabilities list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_create.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_create.md index 15c8542d10..944c974021 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_create.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_create.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam roles create diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_delete.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_delete.md index 0b5ea32688..1ddcdfb5a0 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_delete.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_delete.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam roles delete diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_list.md index 9b8f708b59..6fabfb501d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam roles list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_update.md b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_update.md index 3464393a53..998877de71 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_update.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_iam_roles_update.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl iam roles update diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images.md index 5cfc2b14e7..503912bb4f 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_diff.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_diff.md index ebea656be4..1524e2e25d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_diff.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_diff.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images diff diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements.md index 9d35c66f9d..a57aa3b2fb 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images entitlements diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements_list.md index 163d78475c..b4fce67923 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_entitlements_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images entitlements list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_history.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_history.md index ee109f1886..8c192c92dc 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_history.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_history.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images history diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_list.md index 0da6918d01..b348ba25d3 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos.md index 98f3f8d392..57d16f4f8a 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build.md index 55fb6011f7..08e0892489 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos build diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_apply.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_apply.md index c85e2848ef..a56bdf1ab2 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_apply.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_apply.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos build apply diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_edit.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_edit.md index f68c3c576a..5eb68ae7df 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_edit.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_edit.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos build edit diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_list.md index 9c2570e389..722917696d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos build list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_logs.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_logs.md index 86ccf7b6e0..efd599a166 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_logs.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_build_logs.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos build logs diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_list.md index 288509de8f..91e9494bca 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_update.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_update.md index 026b252052..c48f2d6bf2 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_update.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_repos_update.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images repos update diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags.md index 2492943196..108b023261 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images tags diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_list.md index 5b21fdd2c5..8df70e15d2 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images tags list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_resolve.md b/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_resolve.md index 903e545976..94d86de92d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_resolve.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_images_tags_resolve.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl images tags resolve diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_packages.md b/content/chainguard/chainctl/chainctl-docs/chainctl_packages.md index b427b23061..c82911cf0d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_packages.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_packages.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl packages diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions.md b/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions.md index dae17aa40f..5c0c1ca83c 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl packages versions diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions_list.md b/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions_list.md index 14e2816099..e8b9b36562 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions_list.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_packages_versions_list.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl packages versions list diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_update.md b/content/chainguard/chainctl/chainctl-docs/chainctl_update.md index 621e4ceeb8..484b172a10 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_update.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_update.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl update diff --git a/content/chainguard/chainctl/chainctl-docs/chainctl_version.md b/content/chainguard/chainctl/chainctl-docs/chainctl_version.md index 6349a7783c..7c7db7c06d 100644 --- a/content/chainguard/chainctl/chainctl-docs/chainctl_version.md +++ b/content/chainguard/chainctl/chainctl-docs/chainctl_version.md @@ -8,6 +8,7 @@ tags: ["chainctl", "Reference", "Product"] images: [] type: "article" toc: true +contentType: "product-docs" --- ## chainctl version diff --git a/content/chainguard/chainguard-images/_index.md b/content/chainguard/chainguard-images/_index.md index 64dc5a6a36..2fd05154ca 100644 --- a/content/chainguard/chainguard-images/_index.md +++ b/content/chainguard/chainguard-images/_index.md @@ -50,4 +50,5 @@ tutorials: [ }, ] +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/about/_index.md b/content/chainguard/chainguard-images/about/_index.md index eec4154173..7e8732afee 100644 --- a/content/chainguard/chainguard-images/about/_index.md +++ b/content/chainguard/chainguard-images/about/_index.md @@ -49,4 +49,5 @@ tutorials: [ }, ] +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/about/beyond_zero_pytorch_2024.md b/content/chainguard/chainguard-images/about/beyond_zero_pytorch_2024.md index 8d59944dcb..fe97a14f6a 100644 --- a/content/chainguard/chainguard-images/about/beyond_zero_pytorch_2024.md +++ b/content/chainguard/chainguard-images/about/beyond_zero_pytorch_2024.md @@ -17,6 +17,7 @@ menu: parent: "about" weight: 050 toc: true +contentType: "conceptual" --- {{< youtube 1klynk1dxYA >}} diff --git a/content/chainguard/chainguard-images/about/can-anybody-build-containers.md b/content/chainguard/chainguard-images/about/can-anybody-build-containers.md index b6f7c38806..d5a163c01e 100644 --- a/content/chainguard/chainguard-images/about/can-anybody-build-containers.md +++ b/content/chainguard/chainguard-images/about/can-anybody-build-containers.md @@ -13,6 +13,7 @@ menu: parent: "about" weight: 050 toc: true +contentType: "product-docs" --- {{< youtube 5WGfroCpyn0 >}} @@ -27,4 +28,4 @@ When we get new requests from either internal Chainguard or our existing custome Once that's all graded and approved, we then apply our build tools and our build expertise and get it to build. And sometimes that can take days to weeks or even months in the most complicated build system cases. But then once we do that, we then have the automation to do that constantly, every single time those open source projects tag a new release. That's not manual for us—that's the Factory and the Factory automation that's working on our behalf. -And what you'll find—we find often in the do-it-yourself approach—is that's actually a manual process where there's a human, a maintainer, a security engineer, or project maintainer who's responsible for doing that. And doing that at scale, you really hit the limits of what a human has time to do in a given day or a week. \ No newline at end of file +And what you'll find—we find often in the do-it-yourself approach—is that's actually a manual process where there's a human, a maintainer, a security engineer, or project maintainer who's responsible for doing that. And doing that at scale, you really hit the limits of what a human has time to do in a given day or a week. diff --git a/content/chainguard/chainguard-images/about/differences-development-production.md b/content/chainguard/chainguard-images/about/differences-development-production.md index 638cf52d68..86cb047253 100644 --- a/content/chainguard/chainguard-images/about/differences-development-production.md +++ b/content/chainguard/chainguard-images/about/differences-development-production.md @@ -16,6 +16,7 @@ menu: parent: "about" weight: 020 toc: true +contentType: "product-docs" --- Chainguard Containers follow a distroless philosophy, meaning that only software absolutely necessary for a specific workload is included in an image. Designed to be as minimal as possible, Chainguard's standard container images do not contain package managers such as apk, shells such as b/a/sh, or development utilities such as Git or text editors. However, this distroless approach isn't suitable for every use case. For this reason, most Chainguard Containers have what's called a *development* variant. @@ -61,4 +62,4 @@ Taking the step into distroless by using our standard Chainguard Containers can * [Blog: Minimal container images: Towards a more secure future](https://www.chainguard.dev/unchained/minimal-container-images-towards-a-more-secure-future) * [Chainguard Academy: Overview of Chainguard Containers](/chainguard/chainguard-images/overview/) -* [Chainguard Academy: Debugging Distroless Images](/chainguard/chainguard-images/debugging-distroless-images/) \ No newline at end of file +* [Chainguard Academy: Debugging Distroless Images](/chainguard/chainguard-images/debugging-distroless-images/) diff --git a/content/chainguard/chainguard-images/about/getting-started-distroless.md b/content/chainguard/chainguard-images/about/getting-started-distroless.md index 97106d6074..aa47fa1531 100644 --- a/content/chainguard/chainguard-images/about/getting-started-distroless.md +++ b/content/chainguard/chainguard-images/about/getting-started-distroless.md @@ -16,6 +16,7 @@ menu: parent: "about" weight: 010 toc: true +contentType: "tutorial" --- ## About Distroless Container Images diff --git a/content/chainguard/chainguard-images/about/images-categories.md b/content/chainguard/chainguard-images/about/images-categories.md index 94b73bf225..0a5fcd92ca 100644 --- a/content/chainguard/chainguard-images/about/images-categories.md +++ b/content/chainguard/chainguard-images/about/images-categories.md @@ -13,6 +13,7 @@ menu: parent: "about" weight: 027 toc: true +contentType: "product-docs" --- Chainguard Containers are a collection of curated, distroless container images designed with a focus on software supply chain security. Chainguard's container images are designed to be slim runtimes for production environments, emphasizing security and efficiency by removing unnecessary elements. Additionally, the images are designed to be easily integrated into existing workflows, helping organizations to build better, more secure software. @@ -123,4 +124,4 @@ By reading this guide, you should have a better understanding of how Chainguard * **FIPS**: Contain FIPS-validated cryptographic modules * **AI**: Containers for running AI/ML workloads securely -For more information on Chainguard Containers, please refer to the other resources in the [About section](/chainguard/chainguard-images/about/). In particular, you may find our conceptual article on [Chainguard's Shared Responsibility Model](/chainguard/chainguard-images/about/shared-responsibility-model/) to be of interest. \ No newline at end of file +For more information on Chainguard Containers, please refer to the other resources in the [About section](/chainguard/chainguard-images/about/). In particular, you may find our conceptual article on [Chainguard's Shared Responsibility Model](/chainguard/chainguard-images/about/shared-responsibility-model/) to be of interest. diff --git a/content/chainguard/chainguard-images/about/images-compiled-programs/_index.md b/content/chainguard/chainguard-images/about/images-compiled-programs/_index.md index 2e5dce3c88..e95d7f3977 100644 --- a/content/chainguard/chainguard-images/about/images-compiled-programs/_index.md +++ b/content/chainguard/chainguard-images/about/images-compiled-programs/_index.md @@ -12,4 +12,5 @@ lastmod: 2025-04-07T18:42:57+00:00 draft: false images: [] weight: 030 +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/about/images-compiled-programs/compiled-programs.md b/content/chainguard/chainguard-images/about/images-compiled-programs/compiled-programs.md index 36c72d30cc..96d7944e70 100644 --- a/content/chainguard/chainguard-images/about/images-compiled-programs/compiled-programs.md +++ b/content/chainguard/chainguard-images/about/images-compiled-programs/compiled-programs.md @@ -17,6 +17,7 @@ menu: parent: "about" weight: 205 toc: true +contentType: "conceptual" --- When selecting the right base image for your application, there are a variety of factors to take into consideration. For starters, it is critical that your application has all of the dependencies it needs to run. The ideal base image will contain the essential packages you need, while leaving out the ones you don’t. However, in practice, you will need to build upon your container images so they meet your specific needs, making it all the more important that you have a strong foundation. diff --git a/content/chainguard/chainguard-images/about/images-compiled-programs/glibc-vs-musl.md b/content/chainguard/chainguard-images/about/images-compiled-programs/glibc-vs-musl.md index b1b792d0e8..79fc9134fb 100644 --- a/content/chainguard/chainguard-images/about/images-compiled-programs/glibc-vs-musl.md +++ b/content/chainguard/chainguard-images/about/images-compiled-programs/glibc-vs-musl.md @@ -15,6 +15,7 @@ menu: parent: "about" weight: 210 toc: true +contentType: "conceptual" --- Over the years, various implementations of the [C standard library](https://en.wikipedia.org/wiki/C_standard_library) — such as the [GNU C library](https://www.gnu.org/software/libc/), [musl](https://musl.libc.org/about.html), [dietlibc](https://www.fefe.de/dietlibc/), [uClibc-ng](https://www.uclibc-ng.org/), and many others — have emerged with different goals and characteristics. These various implementations exist because the C standard library defines the required functionality for operating system services (such as file input/output and memory management) but does not specify implementation details. Among these implementations, the GNU C Library ([glibc](https://www.gnu.org/software/libc/)) and [musl](https://musl.libc.org/about.html) are among the most popular. diff --git a/content/chainguard/chainguard-images/about/images-testing.md b/content/chainguard/chainguard-images/about/images-testing.md index c500444d46..6e2e5f9220 100644 --- a/content/chainguard/chainguard-images/about/images-testing.md +++ b/content/chainguard/chainguard-images/about/images-testing.md @@ -16,6 +16,7 @@ menu: parent: "about" weight: 015 toc: true +contentType: "product-docs" --- Chainguard Containers are minimal, distroless container images that you can use to build and run secure applications. Given the importance of secure, highly performant images, Chainguard performs testing to ensure our container images match the functionality of upstream and other external counterparts. @@ -69,4 +70,4 @@ Additionally, Chainguard performs automated tests on every package included in o Chainguard's rigorous container image testing standards and frequent updates ensure that they will work as expected with few (and often zero) vulnerabilities. If you're having trouble working with a specific Chainguard Container, we encourage you to check out its relevant Overview page in our [Chainguard Containers Directory](https://images.chainguard.dev/directory?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-images-testing). -For general help with using Chainguard Containers, you can refer to our [Debugging Distroless Container Images](/chainguard/chainguard-images/debugging-distroless-images/) guide or our [Chainguard Containers FAQs](/chainguard/chainguard-images/faq/). For help with specific issues or questions not covered in these resources, please [contact our support team](https://support.chainguard.dev?utm=docs). \ No newline at end of file +For general help with using Chainguard Containers, you can refer to our [Debugging Distroless Container Images](/chainguard/chainguard-images/debugging-distroless-images/) guide or our [Chainguard Containers FAQs](/chainguard/chainguard-images/faq/). For help with specific issues or questions not covered in these resources, please [contact our support team](https://support.chainguard.dev?utm=docs). diff --git a/content/chainguard/chainguard-images/about/pricing.md b/content/chainguard/chainguard-images/about/pricing.md index de033ebcd2..0aa60da351 100644 --- a/content/chainguard/chainguard-images/about/pricing.md +++ b/content/chainguard/chainguard-images/about/pricing.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-images" weight: 055 toc: true +contentType: "product-docs" --- Chainguard offers catalog pricing for our container catalog, providing access across the Chainguard Container images catalog. @@ -71,4 +72,4 @@ Chainguard's catalog pricing provides access across the Chainguard container ima To learn more, you may be interested in the following resources: - [Blog announcement: Unlock the Full Chainguard Containers Catalog – Now with a Catalog Pricing Option](https://www.chainguard.dev/unchained/unlock-the-full-chainguard-containers-catalog-now-with-a-catalog-pricing-option?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement) -- [Chainguard Pricing](https://www.chainguard.dev/pricing?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement) \ No newline at end of file +- [Chainguard Pricing](https://www.chainguard.dev/pricing?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement) diff --git a/content/chainguard/chainguard-images/about/shared-responsibility-model/index.md b/content/chainguard/chainguard-images/about/shared-responsibility-model/index.md index 3ee3040a92..e1017717ce 100644 --- a/content/chainguard/chainguard-images/about/shared-responsibility-model/index.md +++ b/content/chainguard/chainguard-images/about/shared-responsibility-model/index.md @@ -16,6 +16,7 @@ menu: parent: "about" weight: 005 toc: true +contentType: "conceptual" --- Chainguard’s mission is to be the safe source for open source. As part of this mission, Chainguard builds all of our packages and images from upstream open source code and delivers the resulting artifacts to our customers. There are three distinct parties involved here: **Upstream** projects, **Chainguard**, and **Customers**; each of these parties share some measure of responsibility across a few dimensions. diff --git a/content/chainguard/chainguard-images/about/versions.md b/content/chainguard/chainguard-images/about/versions.md index d7611c4495..ec0b1260fb 100644 --- a/content/chainguard/chainguard-images/about/versions.md +++ b/content/chainguard/chainguard-images/about/versions.md @@ -16,6 +16,7 @@ menu: parent: "about" weight: 025 toc: true +contentType: "product-docs" --- [Chainguard Containers](https://images.chainguard.dev/?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement) are able to offer few-to-zero known vulnerabilities because they are updated frequently. Because of this continuous release cycle, the best way to mitigate vulnerabilities is to use the newest build of each Chainguard Container available. Chainguard keeps Containers up to date by doing one or more of the following: diff --git a/content/chainguard/chainguard-images/about/what-chainguard-will-build.md b/content/chainguard/chainguard-images/about/what-chainguard-will-build.md index ca0253efbd..f61c0669ed 100644 --- a/content/chainguard/chainguard-images/about/what-chainguard-will-build.md +++ b/content/chainguard/chainguard-images/about/what-chainguard-will-build.md @@ -13,6 +13,7 @@ menu: parent: "about" weight: 004 toc: true +contentType: "product-docs" --- There are currently over [1,000 Chainguard Containers](https://images.chainguard.dev/?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement) and that number is always growing as we add more to our expanding catalog. diff --git a/content/chainguard/chainguard-images/about/zerocve.md b/content/chainguard/chainguard-images/about/zerocve.md index cdff1d843d..424d99fcf2 100644 --- a/content/chainguard/chainguard-images/about/zerocve.md +++ b/content/chainguard/chainguard-images/about/zerocve.md @@ -17,6 +17,7 @@ menu: parent: "about" weight: 035 toc: true +contentType: "product-docs" --- {{< youtube Fuw9lYX6Ne8 >}} diff --git a/content/chainguard/chainguard-images/chainguard-registry/_index.md b/content/chainguard/chainguard-images/chainguard-registry/_index.md index 4120ac6b47..f8167566a5 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/_index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/_index.md @@ -11,4 +11,5 @@ images: [] weight: 030 aliases: - /chainguard/chainguard-registry/ +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/chainguard-registry/authenticating/index.md b/content/chainguard/chainguard-images/chainguard-registry/authenticating/index.md index e0499dd35f..452df1f67c 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/authenticating/index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/authenticating/index.md @@ -15,6 +15,7 @@ weight: 050 toc: true aliases: - /chainguard/chainguard-registry/authenticating/ +contentType: "product-docs" --- ## Public Container Images @@ -316,4 +317,4 @@ kubectl apply -f cgr-example.yaml kubectl get pod cgr-example ``` -Learn more in our [sign in guidance](/chainguard/administration/iam-organizations/how-to-manage-iam-organizations-in-chainguard/#logging-in). \ No newline at end of file +Learn more in our [sign in guidance](/chainguard/administration/iam-organizations/how-to-manage-iam-organizations-in-chainguard/#logging-in). diff --git a/content/chainguard/chainguard-images/chainguard-registry/overview.md b/content/chainguard/chainguard-images/chainguard-registry/overview.md index b7554786f4..e653b6b1fa 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/overview.md +++ b/content/chainguard/chainguard-images/chainguard-registry/overview.md @@ -14,6 +14,7 @@ weight: 005 toc: true aliases: - /chainguard/chainguard-registry/overview/ +contentType: "product-docs" --- Chainguard Registry hosts more secure container images with two access tiers: public starter images available to everyone, and production images that require authentication for enterprise features like SLAs and version pinning. The registry integrates with standard container tools while providing enhanced security through signed images and comprehensive metadata. diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/_index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/_index.md index 846e0c3a47..1003221219 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/_index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/_index.md @@ -9,6 +9,7 @@ images: [] weight: 100 aliases: - /chainguard/chainguard-registry/pull-through-guides/ +contentType: "product-docs" --- Documentation and resources explaining how to set-up various third-party registries as pull-through caches diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifact-registry-pull-through/index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifact-registry-pull-through/index.md index a8b7498c92..a2e60db898 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifact-registry-pull-through/index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifact-registry-pull-through/index.md @@ -15,6 +15,7 @@ menu: parent: "pull-through-guides" toc: true weight: 005 +contentType: "product-docs" --- Organizations can use Chainguard Containers along with third-party software repositories in order to integrate with current workflows as the single source of truth for software artifacts. In this situation, you can set up a proxy repository to function as a mirror of [Chainguard's registry](/chainguard/chainguard-registry/overview/). This mirror can then serve as a pull through cache for your Chainguard Containers. @@ -159,4 +160,4 @@ If you run into issues when trying to pull Containers from Chainguard's registry ## Learn More -If you haven't already done so, you may find it useful to review our [Registry Overview](/chainguard/chainguard-registry/overview/) to learn more about Chainguard's registry. You can also learn more about Chainguard Containers by checking out our [Containers documentation](/chainguard/chainguard-images/overview/). If you'd like to learn more about Google Artifact Registry, we encourage you to refer to the [official Google Artifact Registry documentation](https://cloud.google.com/artifact-registry/docs/overview). \ No newline at end of file +If you haven't already done so, you may find it useful to review our [Registry Overview](/chainguard/chainguard-registry/overview/) to learn more about Chainguard's registry. You can also learn more about Chainguard Containers by checking out our [Containers documentation](/chainguard/chainguard-images/overview/). If you'd like to learn more about Google Artifact Registry, we encourage you to refer to the [official Google Artifact Registry documentation](https://cloud.google.com/artifact-registry/docs/overview). diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/_index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/_index.md index 670ff39346..ae309cf896 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/_index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/_index.md @@ -9,6 +9,7 @@ images: [] weight: 10 aliases: - /chainguard/chainguard-registry/pull-through-guides/artifactory/ +contentType: "product-docs" --- Guides explaining how to set up the JFrog Artifactory registry as a pull-through cache or mirror of Chainguard's registry. diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-images-pull-through/index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-images-pull-through/index.md index 6b1f925e42..4bcd761652 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-images-pull-through/index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-images-pull-through/index.md @@ -17,6 +17,7 @@ menu: parent: "pull-through-guides" toc: true weight: 005 +contentType: "product-docs" --- Organizations can use Chainguard Containers along with third-party software repositories in order to integrate with current workflows as the single source of truth for software artifacts. In this situation, you can set up a remote repository to function as a mirror of [Chainguard's registry](https://edu.chainguard.dev/chainguard/chainguard-registry/overview/) — either the public registry or a private one belonging to your organization. This mirror can then serve as a pull through cache for your Chainguard Containers. @@ -204,4 +205,4 @@ If you run into issues when trying to pull Containers from Chainguard's Registry ## Learn more -If you haven't already done so, you may find it useful to review our [Registry Overview](/chainguard/chainguard-registry/overview/) to learn more about Chainguard's registry. You can also learn more about Chainguard Containers by referring to our [Containers documentation](/chainguard/chainguard-images/overview/). If you'd like to learn more about JFrog Artifactory, we encourage you to refer to the [official Artifactory documentation](https://jfrog.com/help/r/jfrog-artifactory-documentation). \ No newline at end of file +If you haven't already done so, you may find it useful to review our [Registry Overview](/chainguard/chainguard-registry/overview/) to learn more about Chainguard's registry. You can also learn more about Chainguard Containers by referring to our [Containers documentation](/chainguard/chainguard-images/overview/). If you'd like to learn more about JFrog Artifactory, we encourage you to refer to the [official Artifactory documentation](https://jfrog.com/help/r/jfrog-artifactory-documentation). diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-packages-pull-through/index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-packages-pull-through/index.md index bd85b4b30c..6c27d1851b 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-packages-pull-through/index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/artifactory/artifactory-packages-pull-through/index.md @@ -15,6 +15,7 @@ menu: parent: "artifactory" toc: true weight: 010 +contentType: "product-docs" --- This tutorial details how to set up remote Alpine package (apk) repositories with [JFrog Artifactory](https://jfrog.com/artifactory/), which can provide pull-through caches for Chainguard package repositories. Specifically, this guide walks you through how to set up remote Artifactory repositories to serve as pull-through caches for a [Chainguard Private APK Repository](/chainguard/chainguard-images/features/private-apk-repos/) as well as Chainguard's public package repositories. The guide also outlines how to configure a container image build to pull APK packages from these remote repositories using tokens generated by Artifactory. diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/cloudsmith-pull-through/index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/cloudsmith-pull-through/index.md index b54489b511..fe5370bd2c 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/cloudsmith-pull-through/index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/cloudsmith-pull-through/index.md @@ -15,6 +15,7 @@ menu: parent: "pull-through-guides" toc: true weight: 020 +contentType: "product-docs" --- Organizations often have their own internal software repositories and registries integrated into their systems. This guide explains how to set up the Cloudsmith artifact repository to ingest [Chainguard Containers](/chainguard/chainguard-images/overview/) by acting as a pull-through cache. diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/harbor/index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/harbor/index.md index 2513caa00c..a42fe9e0d8 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/harbor/index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/harbor/index.md @@ -13,6 +13,7 @@ menu: parent: "pull-through-guides" toc: true weight: 015 +contentType: "product-docs" --- [Harbor](https://goharbor.io) is an open-source artifact registry. It's designed to securely store, manage, and distribute OCI artifacts, including container images and Helm charts by enforcing policies like vulnerability scanning, image signing, and role-based access control. Harbor delivers enterprise-grade compliance, performance, and interoperability across platforms like Kubernetes and Docker, all accessible via a web UI or RESTful API. diff --git a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/nexus-pull-through/index.md b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/nexus-pull-through/index.md index 120dabbff4..d6851868ac 100644 --- a/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/nexus-pull-through/index.md +++ b/content/chainguard/chainguard-images/chainguard-registry/pull-through-guides/nexus-pull-through/index.md @@ -16,6 +16,7 @@ menu: parent: "pull-through-guides" toc: true weight: 015 +contentType: "product-docs" --- Organizations can use Chainguard Containers along with third-party software repositories in order to integrate with current workflows as the single source of truth for software artifacts. In this situation, you can set up a proxy repository to function as a mirror of [Chainguard's registry](/chainguard/chainguard-registry/overview/). This mirror can then serve as a pull through cache for your Chainguard Containers. @@ -121,4 +122,4 @@ If you run into issues when trying to pull Containers from Chainguard's Registry ## Learn more -If you haven't already done so, you may find it useful to review our [Registry Overview](/chainguard/chainguard-registry/overview/) to learn more about Chainguard's registry. You can also learn more about Chainguard Containers by checking out our [Containers documentation](/chainguard/chainguard-images/overview/). If you'd like to learn more about Sonatype Nexus, we encourage you to refer to the [official Nexus documentation](https://help.sonatype.com/en/sonatype-nexus-repository.html). \ No newline at end of file +If you haven't already done so, you may find it useful to review our [Registry Overview](/chainguard/chainguard-registry/overview/) to learn more about Chainguard's registry. You can also learn more about Chainguard Containers by checking out our [Containers documentation](/chainguard/chainguard-images/overview/). If you'd like to learn more about Sonatype Nexus, we encourage you to refer to the [official Nexus documentation](https://help.sonatype.com/en/sonatype-nexus-repository.html). diff --git a/content/chainguard/chainguard-images/faq.md b/content/chainguard/chainguard-images/faq.md index 119e427811..b87dc7e1f4 100644 --- a/content/chainguard/chainguard-images/faq.md +++ b/content/chainguard/chainguard-images/faq.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-images" weight: 060 toc: true +contentType: "product-docs" --- Learn answers to your questions about [Chainguard Containers](https://www.chainguard.dev/chainguard-images?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement). Chainguard provides container images designed with security as the primary focus, featuring zero known CVEs, minimal attack surface, and built-in SBOMs for every image. diff --git a/content/chainguard/chainguard-images/features/_index.md b/content/chainguard/chainguard-images/features/_index.md index d1bbed78ac..cd07abdb53 100644 --- a/content/chainguard/chainguard-images/features/_index.md +++ b/content/chainguard/chainguard-images/features/_index.md @@ -52,4 +52,5 @@ tutorials: [ }, ] ---- \ No newline at end of file +contentType: "product-docs" +--- diff --git a/content/chainguard/chainguard-images/features/ca-docs/_index.md b/content/chainguard/chainguard-images/features/ca-docs/_index.md index 2a7ccfba75..e3295b2e79 100644 --- a/content/chainguard/chainguard-images/features/ca-docs/_index.md +++ b/content/chainguard/chainguard-images/features/ca-docs/_index.md @@ -8,4 +8,5 @@ lastmod: 2025-07-15T08:49:15+00:00 draft: false images: [] weight: 001 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-api-demo.md b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-api-demo.md index e97aee29d6..86ad5c2ad0 100644 --- a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-api-demo.md +++ b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-api-demo.md @@ -13,6 +13,7 @@ menu: parent: "features" weight: 015 toc: true +contentType: "product-docs" --- Chainguard's [Custom Assembly](/chainguard/chainguard-images/features/custom-assembly/) is a tool that allows customers to create customized containers with extra packages added. This enables customers to reduce their risk exposure by creating container images that are tailored to their internal organization and application requirements while still having few-to-zero CVEs. @@ -298,4 +299,4 @@ Again, the `main.go` file contains many comments that explain each portion of th The example application highlighted in this guide is intended to show how you can manage Custom Assembly resources with the Chainguard API. -To learn more about Custom Assembly, you can refer to the [Custom Assembly Overview](/chainguard/chainguard-images/features/ca-docs/custom-assembly/). Be aware that it's also possible to edit a Custom Assembly container's configuration using `chainctl`. Check out our [documentation on the subject](/chainguard/chainguard-images/features/ca-docs/custom-assembly-chainctl/) for more information. \ No newline at end of file +To learn more about Custom Assembly, you can refer to the [Custom Assembly Overview](/chainguard/chainguard-images/features/ca-docs/custom-assembly/). Be aware that it's also possible to edit a Custom Assembly container's configuration using `chainctl`. Check out our [documentation on the subject](/chainguard/chainguard-images/features/ca-docs/custom-assembly-chainctl/) for more information. diff --git a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-chainctl.md b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-chainctl.md index bf555cfb81..360be80be9 100644 --- a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-chainctl.md +++ b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-chainctl.md @@ -13,6 +13,7 @@ menu: parent: "features" weight: 010 toc: true +contentType: "product-docs" --- Chainguard's [Custom Assembly](/chainguard/chainguard-images/features/ca-docs/custom-assembly/) is a tool that allows customers to create customized containers with extra packages and annotations added. This enables customers to reduce their risk exposure by creating container images that are tailored to their internal organization and application requirements while still having few-to-zero CVEs. @@ -228,4 +229,4 @@ Highlight your chosen build report and select it by pressing `ENTER`. This will The `chainctl` commands outlined in this guide show how you can interact with Chainguard's Custom Assembly tool from the command line. -You can also interact with Custom Assembly with the [Chainguard API](/chainguard/administration/api/). Our tutorial on [Using the Chainguard API to Manage Custom Assembly Resources](/chainguard/chainguard-images/features/ca-docs/custom-assembly-api-demo/) outlines how to run a demo application that updates the configuration of a Custom Assembly container through the Chainguard API. \ No newline at end of file +You can also interact with Custom Assembly with the [Chainguard API](/chainguard/administration/api/). Our tutorial on [Using the Chainguard API to Manage Custom Assembly Resources](/chainguard/chainguard-images/features/ca-docs/custom-assembly-api-demo/) outlines how to run a demo application that updates the configuration of a Custom Assembly container through the Chainguard API. diff --git a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-console/index.md b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-console/index.md index 575476fbd5..4b1ca16d0f 100644 --- a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-console/index.md +++ b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly-console/index.md @@ -13,6 +13,7 @@ menu: parent: "features" weight: 005 toc: true +contentType: "product-docs" --- Chainguard's [Custom Assembly feature](/chainguard/chainguard-images/features/ca-docs/custom-assembly/) allows you to build customized container images that include only the packages your application needs. This tutorial will walk you through using the [Chainguard console's web interface](https://console.chainguard.dev) to manage Custom Assembly resources, including selecting packages, building customized containers, and monitoring build status. diff --git a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly.md b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly.md index 88ba2fcf8d..4335ee8d2f 100644 --- a/content/chainguard/chainguard-images/features/ca-docs/custom-assembly.md +++ b/content/chainguard/chainguard-images/features/ca-docs/custom-assembly.md @@ -17,6 +17,7 @@ menu: identifier: "Custom Assembly Introduction" weight: 001 toc: true +contentType: "product-docs" --- Chainguard has created Custom Assembly, a tool that allows users to create customized container images with extra packages added. This enables customers to reduce their risk exposure by creating container images that are tailored to their internal organization and application requirements while still having few-to-zero CVEs. diff --git a/content/chainguard/chainguard-images/features/ca-docs/faq.md b/content/chainguard/chainguard-images/features/ca-docs/faq.md index e7855eb740..7f9ab478c5 100644 --- a/content/chainguard/chainguard-images/features/ca-docs/faq.md +++ b/content/chainguard/chainguard-images/features/ca-docs/faq.md @@ -15,6 +15,7 @@ menu: identifier: "Custom Assembly FAQs" weight: 002 toc: true +contentType: "product-docs" --- ## What is Chainguard’s Custom Assembly? @@ -106,4 +107,4 @@ Build failures can occur for a number of reasons, including the following: * Large images taking longer than 1 hour to build will fail with a timeout error. * When using Custom Assembly through `chainctl`, you choose to add a package which you don't have access to. -In any case, you won’t know whether a container image build fails until after it’s complete. If you need assistance troubleshooting, please [reach out](https://www.chainguard.dev/contact?utm=docs). \ No newline at end of file +In any case, you won’t know whether a container image build fails until after it’s complete. If you need assistance troubleshooting, please [reach out](https://www.chainguard.dev/contact?utm=docs). diff --git a/content/chainguard/chainguard-images/features/cve_visualizations/index.md b/content/chainguard/chainguard-images/features/cve_visualizations/index.md index 84ba620e09..8f920164f2 100644 --- a/content/chainguard/chainguard-images/features/cve_visualizations/index.md +++ b/content/chainguard/chainguard-images/features/cve_visualizations/index.md @@ -16,6 +16,7 @@ menu: parent: "features" weight: 025 toc: true +contentType: "product-docs" --- Chainguard provides CVE Visualizations for all of its container images. This feature creates reports with CVE comparisons between Chainguard Containers and popular alternatives, as well as historical CVE remediation metrics. CVE Visualizations provide insight into image health and can help teams measure the engineering, security, and economic benefits gained from using Chainguard Containers. @@ -95,4 +96,4 @@ Some container images do not currently have a comparative alternative. In these The CVE data used in these reports is from the [Grype vulnerability scanner](/chainguard/chainguard-images/staying-secure/working-with-scanners/grype-tutorial/). Vulnerability data is constantly evolving, so we scan container images each day and store the results. The results shown are the vulnerabilities found on the day in question; scanning the container images again with a newer database will show different results. -For more information on CVEs see [What Are Software Vulnerabilities and CVEs](/software-security/cves/cve-intro/). You may also find our guide on [Using the Chainguard Directory and Console](/chainguard/chainguard-images/how-to-use/images-directory/) to be of interest. \ No newline at end of file +For more information on CVEs see [What Are Software Vulnerabilities and CVEs](/software-security/cves/cve-intro/). You may also find our guide on [Using the Chainguard Directory and Console](/chainguard/chainguard-images/how-to-use/images-directory/) to be of interest. diff --git a/content/chainguard/chainguard-images/features/eol-gp-overview/index.md b/content/chainguard/chainguard-images/features/eol-gp-overview/index.md index 5d653787bb..3660f0a7ee 100644 --- a/content/chainguard/chainguard-images/features/eol-gp-overview/index.md +++ b/content/chainguard/chainguard-images/features/eol-gp-overview/index.md @@ -13,6 +13,7 @@ menu: parent: "about" weight: 004 toc: true +contentType: "product-docs" --- Typically, specific versions of software receive updates on a schedule for a set amount of time. Eventually, though, every version of software will stop receiving support. When project maintainers stop providing updates, it's known as the *End-of-Life* (EOL) stage. diff --git a/content/chainguard/chainguard-images/features/fips/_index.md b/content/chainguard/chainguard-images/features/fips/_index.md index 844205d0da..f2b1af19df 100644 --- a/content/chainguard/chainguard-images/features/fips/_index.md +++ b/content/chainguard/chainguard-images/features/fips/_index.md @@ -9,4 +9,5 @@ lastmod: 2025-01-10T08:48:45+00:00 draft: false images: [] weight: 20 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/features/fips/faqs/index.md b/content/chainguard/chainguard-images/features/fips/faqs/index.md index 2c72d9c95f..d53fa250bc 100644 --- a/content/chainguard/chainguard-images/features/fips/faqs/index.md +++ b/content/chainguard/chainguard-images/features/fips/faqs/index.md @@ -13,6 +13,7 @@ menu: parent: "features" weight: 005 toc: true +contentType: "product-docs" --- Answers to your questions about Chainguard FIPS container images. diff --git a/content/chainguard/chainguard-images/features/fips/fips-images.md b/content/chainguard/chainguard-images/features/fips/fips-images.md index 56df791157..7485b4ed61 100644 --- a/content/chainguard/chainguard-images/features/fips/fips-images.md +++ b/content/chainguard/chainguard-images/features/fips/fips-images.md @@ -18,6 +18,7 @@ menu: parent: "features" weight: 005 toc: true +contentType: "product-docs" --- ## What is FIPS? diff --git a/content/chainguard/chainguard-images/features/image-stigs.md b/content/chainguard/chainguard-images/features/image-stigs.md index b04d0b7369..822c23ded8 100644 --- a/content/chainguard/chainguard-images/features/image-stigs.md +++ b/content/chainguard/chainguard-images/features/image-stigs.md @@ -16,6 +16,7 @@ menu: parent: "concepts" weight: 010 toc: true +contentType: "product-docs" --- The practice of using Security Technical Implementation Guides, or "STIGs," to secure various technologies originated with the United States Department of Defense (DoD). If an organization uses a certain kind of software, say MySQL 8.0, they must ensure that their implementation of it meets the requirements of the [associated Security Requirements Guides (SRG)](https://www.cyber.mil/stigs/) in order to qualify as a vendor for the DoD. More recently, other compliance frameworks have begun acknowledging the value of STIGS, with some going so far as to require the use of STIGs in their guidelines. diff --git a/content/chainguard/chainguard-images/features/incert-custom-certs.md b/content/chainguard/chainguard-images/features/incert-custom-certs.md index 6de673f400..45e11013a1 100644 --- a/content/chainguard/chainguard-images/features/incert-custom-certs.md +++ b/content/chainguard/chainguard-images/features/incert-custom-certs.md @@ -16,6 +16,7 @@ menu: parent: "working-with-images" weight: 030 toc: true +contentType: "product-docs" --- In many enterprise settings, an organization will have its own certificate authority which it uses to issue certificates for its internal services. This is often for security or control reasons but could also be related to regulatory requirements. diff --git a/content/chainguard/chainguard-images/features/packages/_index.md b/content/chainguard/chainguard-images/features/packages/_index.md index a9a46f6ce5..30faa04950 100644 --- a/content/chainguard/chainguard-images/features/packages/_index.md +++ b/content/chainguard/chainguard-images/features/packages/_index.md @@ -9,4 +9,5 @@ lastmod: 2025-09-12T08:48:45+00:00 draft: false images: [] weight: 003 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/features/packages/package-model.md b/content/chainguard/chainguard-images/features/packages/package-model.md index 7ca5025cc4..1efd156554 100644 --- a/content/chainguard/chainguard-images/features/packages/package-model.md +++ b/content/chainguard/chainguard-images/features/packages/package-model.md @@ -10,6 +10,7 @@ draft: false tags: ["Chainguard Containers", "Overview", "Product"] images: [] weight: 001 +contentType: "product-docs" --- Chainguard Containers are built using packages from the Wolfi and Chainguard OS Linux distributions. If you need to extend or customize an image, it can be useful to access these packages directly. @@ -127,4 +128,4 @@ Because Chainguard's private APK repos are only accessible to members of a speci Chainguard’s package repositories provide trusted apk packages to support both standard and advanced containerized workloads. With the public Wolfi and Extra repositories alongside organization-specific private repositories, customers can reliably source the dependencies they need for production environments. -We encourage you to learn more about Chainguard's private APK repositories by referring to our [documentation on the subject](/chainguard/chainguard-images/features/packages/private-apk-repos/). Additionally, if you're interested in customizing your Chainguard Containers by adding packages, we encourage you to check out our Chainguard's [Custom Assembly tool](/chainguard/chainguard-images/features/ca-docs/custom-assembly/). \ No newline at end of file +We encourage you to learn more about Chainguard's private APK repositories by referring to our [documentation on the subject](/chainguard/chainguard-images/features/packages/private-apk-repos/). Additionally, if you're interested in customizing your Chainguard Containers by adding packages, we encourage you to check out our Chainguard's [Custom Assembly tool](/chainguard/chainguard-images/features/ca-docs/custom-assembly/). diff --git a/content/chainguard/chainguard-images/features/packages/private-apk-repos/index.md b/content/chainguard/chainguard-images/features/packages/private-apk-repos/index.md index a71f47cb64..8b8a9331ee 100644 --- a/content/chainguard/chainguard-images/features/packages/private-apk-repos/index.md +++ b/content/chainguard/chainguard-images/features/packages/private-apk-repos/index.md @@ -12,6 +12,7 @@ tags: ["Chainguard Containers"] images: [] weight: 028 toc: true +contentType: "product-docs" --- With Chainguard's Private APK Repositories, you can access packages that are included within your organization's container image entitlements. This allows you to build custom images based on components that are already part of your organization catalog. diff --git a/content/chainguard/chainguard-images/features/unique-tags/index.md b/content/chainguard/chainguard-images/features/unique-tags/index.md index bc8239cbd0..c3cc871ca3 100644 --- a/content/chainguard/chainguard-images/features/unique-tags/index.md +++ b/content/chainguard/chainguard-images/features/unique-tags/index.md @@ -18,6 +18,7 @@ menu: parent: "chainguard-images" weight: 015 toc: true +contentType: "product-docs" --- Chainguard's Unique Tags feature provides timestamped, immutable tags for every container image build, addressing enterprise requirements for precise version tracking and automated deployment workflows. Many organizations rely on distinct tags to trigger automated deployments and maintain audit trails, making traditional floating tags like 'latest' unsuitable for production use. diff --git a/content/chainguard/chainguard-images/features/using-the-tag-history-api.md b/content/chainguard/chainguard-images/features/using-the-tag-history-api.md index 8c5235a9fd..1a62b5bebb 100644 --- a/content/chainguard/chainguard-images/features/using-the-tag-history-api.md +++ b/content/chainguard/chainguard-images/features/using-the-tag-history-api.md @@ -17,6 +17,7 @@ menu: parent: "images-features" weight: 020 toc: true +contentType: "product-docs" --- Chainguard Containers have automated nightly builds, which ensures our container images are always fresh including any recent patches and updated software. Even though it is important to keep your base images always updated, there will be situations where you'll want to keep using an older build to make sure nothing will change in your container environment until you feel it's safe to update. diff --git a/content/chainguard/chainguard-images/getting-started/_index.md b/content/chainguard/chainguard-images/getting-started/_index.md index f28021f2e2..dc28ff4b51 100644 --- a/content/chainguard/chainguard-images/getting-started/_index.md +++ b/content/chainguard/chainguard-images/getting-started/_index.md @@ -49,4 +49,5 @@ tutorials: [ }, ] +contentType: "tutorial" --- diff --git a/content/chainguard/chainguard-images/getting-started/c/index.md b/content/chainguard/chainguard-images/getting-started/c/index.md index cb0700969c..44bbc3405f 100644 --- a/content/chainguard/chainguard-images/getting-started/c/index.md +++ b/content/chainguard/chainguard-images/getting-started/c/index.md @@ -16,6 +16,7 @@ menu: parent: "getting-started" weight: 002 toc: true +contentType: "tutorial" --- Chainguard provides security-hardened container images for C and C++ development, offering minimal runtime environments with significantly reduced vulnerabilities compared to traditional base images. Built on Chainguard's own OS, these containers enable more secure deployment of compiled programs through purpose-built images for different linking scenarios. This guide demonstrates three approaches to compiling and running C/C++ applications using Chainguard's specialized containers. diff --git a/content/chainguard/chainguard-images/getting-started/cilium/index.md b/content/chainguard/chainguard-images/getting-started/cilium/index.md index f744a6b308..9ac43c9c25 100644 --- a/content/chainguard/chainguard-images/getting-started/cilium/index.md +++ b/content/chainguard/chainguard-images/getting-started/cilium/index.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 005 toc: true +contentType: "tutorial" --- Chainguard's Cilium container images provide a security-hardened foundation for Kubernetes networking with significantly reduced vulnerabilities compared to standard Cilium deployments. Cilium leverages [eBPF](https://ebpf.io/) technology to transparently secure network connectivity between services, enabling powerful security policies without application changes. Built on Wolfi OS, Chainguard's minimal Cilium images enhance your cluster's security posture while maintaining full compatibility with Cilium's advanced networking features. diff --git a/content/chainguard/chainguard-images/getting-started/go.md b/content/chainguard/chainguard-images/getting-started/go.md index dc52cf2ec3..5c9703021c 100644 --- a/content/chainguard/chainguard-images/getting-started/go.md +++ b/content/chainguard/chainguard-images/getting-started/go.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 010 toc: true +contentType: "tutorial" --- Chainguard's [Go container image](https://images.chainguard.dev/directory/image/go/overview?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-getting-started-go) provides a secure foundation for building Go applications with significantly fewer vulnerabilities than traditional Go images. The distroless `latest` variant contains only the Go compiler and runtime, while the `latest-dev` variant includes additional build tools and package management capabilities for development workflows. diff --git a/content/chainguard/chainguard-images/getting-started/istio.md b/content/chainguard/chainguard-images/getting-started/istio.md index c5cf2fc2b1..b6d9c8555f 100644 --- a/content/chainguard/chainguard-images/getting-started/istio.md +++ b/content/chainguard/chainguard-images/getting-started/istio.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 015 toc: true +contentType: "tutorial" --- Chainguard's [Istio](https://istio.io) container images provide a security-hardened foundation for service mesh deployments with significantly reduced vulnerabilities compared to standard Istio images. Istio extends Kubernetes to establish a programmable, application-aware network using the Envoy service proxy, bringing traffic management, telemetry, and security to complex deployments. Built on Wolfi OS, Chainguard's minimal Istio images maintain full compatibility while enhancing security posture. diff --git a/content/chainguard/chainguard-images/getting-started/jre-minecraft/index.md b/content/chainguard/chainguard-images/getting-started/jre-minecraft/index.md index 6bd72b7d89..b5a95e215d 100644 --- a/content/chainguard/chainguard-images/getting-started/jre-minecraft/index.md +++ b/content/chainguard/chainguard-images/getting-started/jre-minecraft/index.md @@ -13,6 +13,7 @@ menu: parent: "getting-started" weight: 100 toc: true +contentType: "tutorial" --- ## Introduction diff --git a/content/chainguard/chainguard-images/getting-started/laravel.md b/content/chainguard/chainguard-images/getting-started/laravel.md index fe1156897a..e21d0e29c6 100644 --- a/content/chainguard/chainguard-images/getting-started/laravel.md +++ b/content/chainguard/chainguard-images/getting-started/laravel.md @@ -13,6 +13,7 @@ menu: parent: "getting-started" weight: 020 toc: true +contentType: "tutorial" --- Chainguard's [Laravel container image](https://images.chainguard.dev/directory/image/laravel/overview?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-getting-started-laravel) provides a secure foundation for [Laravel](https://laravel.com) applications with minimal vulnerabilities compared to traditional PHP images. This specialized image includes all necessary PHP extensions and tooling for Laravel development while maintaining Chainguard's security-first approach, enabling developers to build complex applications without compromising on security. diff --git a/content/chainguard/chainguard-images/getting-started/mariadb/index.md b/content/chainguard/chainguard-images/getting-started/mariadb/index.md index 4598e2414a..48e1f335d3 100644 --- a/content/chainguard/chainguard-images/getting-started/mariadb/index.md +++ b/content/chainguard/chainguard-images/getting-started/mariadb/index.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 025 toc: true +contentType: "tutorial" --- Chainguard's MariaDB container image provides a security-hardened foundation for database workloads with significantly fewer vulnerabilities than traditional MariaDB images. Built on Wolfi with a distroless design, this container removes unnecessary components while maintaining full MariaDB functionality. diff --git a/content/chainguard/chainguard-images/getting-started/minio.md b/content/chainguard/chainguard-images/getting-started/minio.md index 7b032dac3e..efaa375ecc 100644 --- a/content/chainguard/chainguard-images/getting-started/minio.md +++ b/content/chainguard/chainguard-images/getting-started/minio.md @@ -13,6 +13,7 @@ menu: parent: "getting-started" weight: 065 toc: true +contentType: "tutorial" --- MinIO is a high-performance, S3-compatible object storage system that has become widely adopted across the cloud-native ecosystem, with over 1 billion pulls on Docker Hub. It's used for testing, local development, and production deployments across on-premises and cloud environments. MinIO's solid S3 compatibility has made it a common choice for developers who need S3-compatible storage without AWS dependencies, and it's integrated into popular open source projects like Trino and Apache Spark for backup and archival, AI/ML workloads, data lakes, and application data storage. diff --git a/content/chainguard/chainguard-images/getting-started/nemo/index.md b/content/chainguard/chainguard-images/getting-started/nemo/index.md index a554335f7a..5cd9fb5f53 100644 --- a/content/chainguard/chainguard-images/getting-started/nemo/index.md +++ b/content/chainguard/chainguard-images/getting-started/nemo/index.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 030 toc: true +contentType: "tutorial" --- Chainguard's [NeMo container image](https://images.chainguard.dev/directory/image/nemo/overview?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-getting-started-nemo) provides a security-hardened environment for NVIDIA's [NeMo](https://github.com/NVIDIA/NeMo) deep learning framework with minimal vulnerabilities compared to traditional AI/ML containers. NeMo enables building conversational AI models through module collections for Automatic Speech Recognition (ASR), Natural Language Processing (NLP), and Text-to-Speech (TTS) tasks. Built for [CUDA 12](https://developer.nvidia.com/about-cuda) GPU acceleration, this lightweight container maintains full NeMo functionality while significantly reducing security risks for both training and production inference workloads. diff --git a/content/chainguard/chainguard-images/getting-started/nginx/index.md b/content/chainguard/chainguard-images/getting-started/nginx/index.md index 0d51d8086e..1b44edba02 100644 --- a/content/chainguard/chainguard-images/getting-started/nginx/index.md +++ b/content/chainguard/chainguard-images/getting-started/nginx/index.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 035 toc: true +contentType: "tutorial" --- Chainguard's nginx container images provide a security-hardened foundation for web server deployments with significantly fewer vulnerabilities than traditional nginx images. Available in both development (`:latest-dev`) and production (`:latest`) variants, these containers maintain full nginx functionality while dramatically reducing attack surface. The production variant uses a distroless approach, removing shells and package managers to enhance security for production workloads. diff --git a/content/chainguard/chainguard-images/getting-started/node.md b/content/chainguard/chainguard-images/getting-started/node.md index 06409e40b3..9a51c9c67f 100644 --- a/content/chainguard/chainguard-images/getting-started/node.md +++ b/content/chainguard/chainguard-images/getting-started/node.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 040 toc: true +contentType: "tutorial" --- Chainguard's [Node container image](https://images.chainguard.dev/directory/image/node/overview?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-getting-started-node) provides a secure runtime for Node.js applications with significantly fewer vulnerabilities than traditional Node images. This distroless image includes Node.js and npm while maintaining a minimal attack surface for production deployments. diff --git a/content/chainguard/chainguard-images/getting-started/php.md b/content/chainguard/chainguard-images/getting-started/php.md index 9ef3e1887a..08cd3b3e1a 100644 --- a/content/chainguard/chainguard-images/getting-started/php.md +++ b/content/chainguard/chainguard-images/getting-started/php.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 045 toc: true +contentType: "tutorial" --- Chainguard's PHP container images provide secure foundations for PHP applications with minimal vulnerabilities compared to traditional PHP images. These images come in multiple variants: the `latest-fpm` variant for serving web applications via FastCGI, the `latest` variant for CLI applications, and development variants that include additional tools for building and debugging PHP workloads. diff --git a/content/chainguard/chainguard-images/getting-started/postgres/index.md b/content/chainguard/chainguard-images/getting-started/postgres/index.md index 3ce7f6eb9f..e957bc5083 100644 --- a/content/chainguard/chainguard-images/getting-started/postgres/index.md +++ b/content/chainguard/chainguard-images/getting-started/postgres/index.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 050 toc: true +contentType: "tutorial" --- Chainguard's PostgreSQL container image provides a security-hardened foundation for running Postgres databases with significantly fewer vulnerabilities than traditional PostgreSQL images. Built on Wolfi with a distroless design, this container maintains full PostgreSQL functionality while dramatically reducing attack surface. @@ -226,4 +227,4 @@ You can also run the Chainguard PostgreSQL container image with a custom configu docker run --rm -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -e POSTGRES_PASSWORD=password -ti --name postgres-test cgr.dev/ORGANIZATION/postgres:latest -c 'config_file=/etc/postgresql/postgresql.conf' ``` -This command also uses the `postgres` server's `-c` flag to set the `config_file` runtime parameter. \ No newline at end of file +This command also uses the `postgres` server's `-c` flag to set the `config_file` runtime parameter. diff --git a/content/chainguard/chainguard-images/getting-started/python.md b/content/chainguard/chainguard-images/getting-started/python.md index 23c3ef2528..deca78dbf6 100644 --- a/content/chainguard/chainguard-images/getting-started/python.md +++ b/content/chainguard/chainguard-images/getting-started/python.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 055 toc: true +contentType: "tutorial" --- Chainguard's Python container images provide a more secure foundation for Python applications through distroless design, containing significantly fewer CVEs compared to traditional Python images. These production-ready images are optimized for building and running Python workloads. diff --git a/content/chainguard/chainguard-images/getting-started/pytorch/index.md b/content/chainguard/chainguard-images/getting-started/pytorch/index.md index 9a885d9f65..81033edc54 100644 --- a/content/chainguard/chainguard-images/getting-started/pytorch/index.md +++ b/content/chainguard/chainguard-images/getting-started/pytorch/index.md @@ -16,6 +16,7 @@ menu: parent: "getting-started" weight: 060 toc: true +contentType: "tutorial" --- Chainguard's [PyTorch container image](https://images.chainguard.dev/directory/image/pytorch/overview?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-getting-started-pytorch) provides a security-hardened foundation for deep learning workloads with significantly fewer vulnerabilities than traditional PyTorch containers. Built with [PyTorch](https://pytorch.org/) and [CUDA](https://developer.nvidia.com/about-cuda) support for GPU acceleration, this minimal image maintains full deep learning capabilities while dramatically reducing attack surface. This guide demonstrates fine-tuning models, secure inference deployment, and compares the enhanced security posture to official PyTorch images. diff --git a/content/chainguard/chainguard-images/getting-started/ruby.md b/content/chainguard/chainguard-images/getting-started/ruby.md index edce797869..507dde4ad8 100644 --- a/content/chainguard/chainguard-images/getting-started/ruby.md +++ b/content/chainguard/chainguard-images/getting-started/ruby.md @@ -15,6 +15,7 @@ menu: parent: "getting-started" weight: 065 toc: true +contentType: "tutorial" --- Chainguard's [Ruby container images](https://images.chainguard.dev/directory/image/ruby/versions?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-getting-started-ruby) provide secure foundations for Ruby applications with minimal vulnerabilities through both development and production-ready distroless variants. These images significantly reduce attack surface compared to traditional Ruby base images while maintaining full compatibility with Ruby applications and the Rubygems ecosystem. diff --git a/content/chainguard/chainguard-images/getting-started/wordpress.md b/content/chainguard/chainguard-images/getting-started/wordpress.md index 4ce54a4a01..c7716c2007 100644 --- a/content/chainguard/chainguard-images/getting-started/wordpress.md +++ b/content/chainguard/chainguard-images/getting-started/wordpress.md @@ -13,6 +13,7 @@ menu: parent: "getting-started" weight: 70 toc: true +contentType: "tutorial" --- Chainguard's [WordPress container image](https://images.chainguard.dev/directory/image/wordpress/overview?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement&utm_content=edu-content-chainguard-chainguard-images-getting-started-wordpress) provides a security-hardened foundation for WordPress deployments with significantly fewer vulnerabilities than traditional WordPress images. Designed as a drop-in replacement for the official [WordPress FPM-Alpine image](https://hub.docker.com/_/wordpress), this container includes a [distroless](/chainguard/chainguard-images/getting-started-distroless/) variant that enhances production security by removing unnecessary system components. Built with the latest PHP and WordPress versions, it includes all required extensions while maintaining a minimal attack surface. diff --git a/content/chainguard/chainguard-images/how-to-use/_index.md b/content/chainguard/chainguard-images/how-to-use/_index.md index 83f9046880..42ddf50e5d 100644 --- a/content/chainguard/chainguard-images/how-to-use/_index.md +++ b/content/chainguard/chainguard-images/how-to-use/_index.md @@ -49,4 +49,5 @@ tutorials: [ }, ] ---- \ No newline at end of file +contentType: "product-docs" +--- diff --git a/content/chainguard/chainguard-images/how-to-use/container-image-digests.md b/content/chainguard/chainguard-images/how-to-use/container-image-digests.md index 2a2380a432..9ef25229e0 100644 --- a/content/chainguard/chainguard-images/how-to-use/container-image-digests.md +++ b/content/chainguard/chainguard-images/how-to-use/container-image-digests.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 037 toc: true +contentType: "product-docs" --- {{< youtube xYlLfjgG64E >}} @@ -146,4 +147,4 @@ ENTRYPOINT [ "/bin/server" ] 4:08 And that's really about it. -4:09 We've looked at what our digest is, how you can get it and how you can use it to improve reproducibility. \ No newline at end of file +4:09 We've looked at what our digest is, how you can get it and how you can use it to improve reproducibility. diff --git a/content/chainguard/chainguard-images/how-to-use/dev-containers/index.md b/content/chainguard/chainguard-images/how-to-use/dev-containers/index.md index 84233cba78..127b0f5f2d 100644 --- a/content/chainguard/chainguard-images/how-to-use/dev-containers/index.md +++ b/content/chainguard/chainguard-images/how-to-use/dev-containers/index.md @@ -15,6 +15,7 @@ menu: parent: "how-to-use" weight: 27 toc: true +contentType: "how-to-guide" --- [Development Containers](https://containers.dev/) — sometimes known as "dev containers" — allow you to use a container as a development environment where you can run applications and separate tools, libraries, or runtimes. Dev containers can also help with testing and continuous integration. diff --git a/content/chainguard/chainguard-images/how-to-use/digestabot_frizbee.md b/content/chainguard/chainguard-images/how-to-use/digestabot_frizbee.md index 07800380b5..efe9d41caf 100644 --- a/content/chainguard/chainguard-images/how-to-use/digestabot_frizbee.md +++ b/content/chainguard/chainguard-images/how-to-use/digestabot_frizbee.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 040 toc: true +contentType: "product-docs" --- {{< youtube FfZZVZ-V5ho >}} diff --git a/content/chainguard/chainguard-images/how-to-use/how-to-use-chainguard-images.md b/content/chainguard/chainguard-images/how-to-use/how-to-use-chainguard-images.md index 90a4f5f521..74116269a3 100644 --- a/content/chainguard/chainguard-images/how-to-use/how-to-use-chainguard-images.md +++ b/content/chainguard/chainguard-images/how-to-use/how-to-use-chainguard-images.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 005 toc: true +contentType: "tutorial" --- [Chainguard Containers](https://images.chainguard.dev) are minimal container images designed to reduce vulnerabilities and attack surface compared to traditional base images. These images use the [apk](https://wiki.alpinelinux.org/wiki/Package_management) package format to achieve smaller sizes while maintaining complete provenance information with cryptographic signatures, ensuring both enhanced security and traceability. diff --git a/content/chainguard/chainguard-images/how-to-use/images-directory/index.md b/content/chainguard/chainguard-images/how-to-use/images-directory/index.md index de461e25eb..6179c2d425 100644 --- a/content/chainguard/chainguard-images/how-to-use/images-directory/index.md +++ b/content/chainguard/chainguard-images/how-to-use/images-directory/index.md @@ -15,6 +15,7 @@ menu: parent: "chainguard-images" weight: 020 toc: true +contentType: "product-docs" --- There are hundreds of Chainguard Containers available for use. To help users explore and better understand all of these container images, we've developed the Chainguard Directory. This guide serves as a walkthrough of the browsing experience for Chainguard Containers in the Directory and Console, including how to access it and get the most out of its features. diff --git a/content/chainguard/chainguard-images/how-to-use/init-containers.md b/content/chainguard/chainguard-images/how-to-use/init-containers.md index dde188ab22..b91d088d6f 100644 --- a/content/chainguard/chainguard-images/how-to-use/init-containers.md +++ b/content/chainguard/chainguard-images/how-to-use/init-containers.md @@ -14,6 +14,7 @@ menu: parent: "how-to-use" weight: 035 toc: true +contentType: "product-docs" --- Chainguard Containers are designed with minimalism and security in mind. By including fewer packages and tools, Chainguard Containers have a smaller attack surface than their counterparts. However, there are cases where the external counterparts have certain desirable features, like useful startup scripts or configuration defaults. diff --git a/content/chainguard/chainguard-images/how-to-use/minimal-runtime-images.md b/content/chainguard/chainguard-images/how-to-use/minimal-runtime-images.md index 0ce34db947..938a1d514c 100644 --- a/content/chainguard/chainguard-images/how-to-use/minimal-runtime-images.md +++ b/content/chainguard/chainguard-images/how-to-use/minimal-runtime-images.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 045 toc: true +contentType: "product-docs" --- {{< youtube P7pmV-s5ZYY >}} diff --git a/content/chainguard/chainguard-images/how-to-use/proxy-and-cache/index.md b/content/chainguard/chainguard-images/how-to-use/proxy-and-cache/index.md index d6691064fe..605a8625e9 100644 --- a/content/chainguard/chainguard-images/how-to-use/proxy-and-cache/index.md +++ b/content/chainguard/chainguard-images/how-to-use/proxy-and-cache/index.md @@ -15,6 +15,7 @@ menu: parent: "chainguard-images" weight: 009 toc: true +contentType: "how-to-guide" --- This page shows you how to set up and use Chainguard Helm Charts with Artifactory via remote Helm OCI repositories. diff --git a/content/chainguard/chainguard-images/how-to-use/retrieve-image-sboms/index.md b/content/chainguard/chainguard-images/how-to-use/retrieve-image-sboms/index.md index 97abfddee3..4ebc39681c 100644 --- a/content/chainguard/chainguard-images/how-to-use/retrieve-image-sboms/index.md +++ b/content/chainguard/chainguard-images/how-to-use/retrieve-image-sboms/index.md @@ -18,6 +18,7 @@ menu: parent: "chainguard-images" weight: 013 toc: true +contentType: "how-to-guide" --- diff --git a/content/chainguard/chainguard-images/how-to-use/static-base-image.md b/content/chainguard/chainguard-images/how-to-use/static-base-image.md index c73199fb81..f82d01393a 100644 --- a/content/chainguard/chainguard-images/how-to-use/static-base-image.md +++ b/content/chainguard/chainguard-images/how-to-use/static-base-image.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 035 toc: true +contentType: "product-docs" --- {{< youtube ZT6177U0fUM >}} diff --git a/content/chainguard/chainguard-images/how-to-use/use-chainguard-helm-charts/index.md b/content/chainguard/chainguard-images/how-to-use/use-chainguard-helm-charts/index.md index c1157d1047..4b9b901ecf 100644 --- a/content/chainguard/chainguard-images/how-to-use/use-chainguard-helm-charts/index.md +++ b/content/chainguard/chainguard-images/how-to-use/use-chainguard-helm-charts/index.md @@ -15,6 +15,7 @@ menu: parent: "chainguard-images" weight: 007 toc: true +contentType: "how-to-guide" --- [Helm](https://helm.sh) is the package manager for Kubernetes that simplifies the installation and management of applications by automating the creation of Kubernetes resources. Helm charts are reusable, versioned packages that define a collection of Kubernetes resources required to run an application or service. You use Helm to define, install, and perform upgrades to your applications on Kubernetes. diff --git a/content/chainguard/chainguard-images/how-to-use/use-with-openshift.md b/content/chainguard/chainguard-images/how-to-use/use-with-openshift.md index 2a65c01fae..975ee37a13 100644 --- a/content/chainguard/chainguard-images/how-to-use/use-with-openshift.md +++ b/content/chainguard/chainguard-images/how-to-use/use-with-openshift.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-images" weight: 011 toc: true +contentType: "integration" --- Chainguard Containers are fully compatible with Red Hat OpenShift Container Platform, providing enhanced security while requiring some configuration adjustments for OpenShift's security context constraints. This guide explains how to successfully deploy Chainguard's minimal, security-hardened container images in OpenShift environments. diff --git a/content/chainguard/chainguard-images/how-to-use/verifying-chainguard-images-and-metadata-signatures-with-cosign/index.md b/content/chainguard/chainguard-images/how-to-use/verifying-chainguard-images-and-metadata-signatures-with-cosign/index.md index 3f6fb897d2..fc99398427 100644 --- a/content/chainguard/chainguard-images/how-to-use/verifying-chainguard-images-and-metadata-signatures-with-cosign/index.md +++ b/content/chainguard/chainguard-images/how-to-use/verifying-chainguard-images-and-metadata-signatures-with-cosign/index.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 015 toc: true +contentType: "how-to-guide" --- Chainguard signs all container images and their attestations (including SBOMs) to ensure supply chain security and enable verification of image authenticity. These cryptographic signatures allow you to confirm that images come from Chainguard and haven't been tampered with, while attestations provide detailed information about image contents and build provenance. diff --git a/content/chainguard/chainguard-images/how-to-use/version-info-chainguard-images.md b/content/chainguard/chainguard-images/how-to-use/version-info-chainguard-images.md index 8d9f333c7c..ecdbf8da04 100644 --- a/content/chainguard/chainguard-images/how-to-use/version-info-chainguard-images.md +++ b/content/chainguard/chainguard-images/how-to-use/version-info-chainguard-images.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 040 toc: true +contentType: "product-docs" --- {{< youtube K60-jhVf2I4 >}} diff --git a/content/chainguard/chainguard-images/network-requirements.md b/content/chainguard/chainguard-images/network-requirements.md index 859e42a293..3b14b00166 100644 --- a/content/chainguard/chainguard-images/network-requirements.md +++ b/content/chainguard/chainguard-images/network-requirements.md @@ -14,6 +14,7 @@ tags: ["Chainguard Containers", "Reference"] images: [] toc: true weight: 010 +contentType: "product-docs" --- This document provides an overview of network requirements for using [Chainguard Containers](https://www.chainguard.dev/chainguard-images?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement). To use Chainguard tools and Containers in environments with firewalls, VPNs, and IDS/IPS systems, you will need to add some rules to allow traffic into and out of your networks. diff --git a/content/chainguard/chainguard-images/overview.md b/content/chainguard/chainguard-images/overview.md index 0f8da22715..1507c0af1e 100644 --- a/content/chainguard/chainguard-images/overview.md +++ b/content/chainguard/chainguard-images/overview.md @@ -14,6 +14,7 @@ menu: parent: "chainguard-images" weight: 005 toc: true +contentType: "product-docs" --- [Chainguard Containers](https://www.chainguard.dev/chainguard-images?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement) are container images designed for enhanced security through minimalism and supply chain integrity. These images follow a distroless philosophy, containing only the application and its essential runtime dependencies, without shells, package managers, or other common utilities that can increase attack surface. diff --git a/content/chainguard/chainguard-images/staying-secure/_index.md b/content/chainguard/chainguard-images/staying-secure/_index.md index c0eb656a97..8c2955cf40 100644 --- a/content/chainguard/chainguard-images/staying-secure/_index.md +++ b/content/chainguard/chainguard-images/staying-secure/_index.md @@ -10,4 +10,5 @@ lastmod: 2024-12-19T08:49:15+00:00 draft: false images: [] weight: 035 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/staying-secure/cve-risk.md b/content/chainguard/chainguard-images/staying-secure/cve-risk.md index b2a2da10c1..a665471f6f 100644 --- a/content/chainguard/chainguard-images/staying-secure/cve-risk.md +++ b/content/chainguard/chainguard-images/staying-secure/cve-risk.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 005 toc: true +contentType: "conceptual" --- [Common vulnerabilities and exposures](/software-security/cves/cve-intro/#what-is-a-cve) (CVEs) are an increasing concern for developers and organizations, which is why Chainguard developed its minimal container images that reduce the attack surface. A new CVE in a widely-used application or a vulnerability scan with numerous positive results can significantly impact security posture, compliance requirements, and development timelines. diff --git a/content/chainguard/chainguard-images/staying-secure/enforcement/_index.md b/content/chainguard/chainguard-images/staying-secure/enforcement/_index.md index 6b44831a52..75c89d6408 100644 --- a/content/chainguard/chainguard-images/staying-secure/enforcement/_index.md +++ b/content/chainguard/chainguard-images/staying-secure/enforcement/_index.md @@ -8,4 +8,5 @@ lastmod: 2025-09-02T10:00:00-00:00 draft: false images: [] weight: 030 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/staying-secure/enforcement/kyverno/index.md b/content/chainguard/chainguard-images/staying-secure/enforcement/kyverno/index.md index 34c1a9d195..ac309e7cb6 100644 --- a/content/chainguard/chainguard-images/staying-secure/enforcement/kyverno/index.md +++ b/content/chainguard/chainguard-images/staying-secure/enforcement/kyverno/index.md @@ -10,6 +10,7 @@ tags: ["Chainguard Containers", "Overview", "Policy"] images: [] weight: 010 toc: true +contentType: "integration" --- [Kyverno](https://kyverno.io/) is an admission controller that enforces policies in Kubernetes clusters. This article describes how it can be leveraged to ensure resources follow best practices related to the use of Chainguard Containers. diff --git a/content/chainguard/chainguard-images/staying-secure/enforcement/opa-gatekeeper/index.md b/content/chainguard/chainguard-images/staying-secure/enforcement/opa-gatekeeper/index.md index 5798ee246d..63eb5efde5 100644 --- a/content/chainguard/chainguard-images/staying-secure/enforcement/opa-gatekeeper/index.md +++ b/content/chainguard/chainguard-images/staying-secure/enforcement/opa-gatekeeper/index.md @@ -10,6 +10,7 @@ tags: ["Chainguard Containers", "Overview", "Policy"] images: [] weight: 005 toc: true +contentType: "integration" --- [Gatekeeper](https://open-policy-agent.github.io/gatekeeper/website/) is an admission controller that enforces policies in Kubernetes clusters. This diff --git a/content/chainguard/chainguard-images/staying-secure/fedramp-considerations/index.md b/content/chainguard/chainguard-images/staying-secure/fedramp-considerations/index.md index a0ac668d99..4059db37fc 100644 --- a/content/chainguard/chainguard-images/staying-secure/fedramp-considerations/index.md +++ b/content/chainguard/chainguard-images/staying-secure/fedramp-considerations/index.md @@ -13,6 +13,7 @@ menu: parent: "features" weight: 007 toc: true +contentType: "product-docs" --- Many frequently asked questions revolve around how organizations are meant to stay on top of the changing landscape for FedRAMP, PMOS, Revisions, and Certificates. This article outlines various considerations and risk factors that organizations should keep in mind when working to become and stay FedRAMP authorized. @@ -107,4 +108,4 @@ While FIPS 140-2 has become relatively familiar to organizations, it still prese The Rev-5 changes signal a continued trend in the market: as PMOs get better at understanding the state of modernized applications running on containers, and how the architectures interact with the services running, requirements are only becoming more granular. As a result, further documentation and proof will be required by organizations who are seeking to implement FIPS within their container environments. This puts pressure on organizations to fill skill gaps, increase the spend going towards FedRAMP programs, and de-risk ongoing assessments to maintain compliance. -Chainguard offers an off-the-shelf solution for customers to run their applications on preconfigured and continuously maintained FIPS validated images so that they do not have to incur these costs or associated risks. As a result, Chainguard has helped customers achieve Moderate and High impact levels with very low engineering lift. With this comes the peace of mind knowing that you have a single partner responsible for building and supplying the key images needed to be successful in FedRAMP endeavours. \ No newline at end of file +Chainguard offers an off-the-shelf solution for customers to run their applications on preconfigured and continuously maintained FIPS validated images so that they do not have to incur these costs or associated risks. As a result, Chainguard has helped customers achieve Moderate and High impact levels with very low engineering lift. With this comes the peace of mind knowing that you have a single partner responsible for building and supplying the key images needed to be successful in FedRAMP endeavours. diff --git a/content/chainguard/chainguard-images/staying-secure/repro.md b/content/chainguard/chainguard-images/staying-secure/repro.md index 59026dc822..975226de5d 100644 --- a/content/chainguard/chainguard-images/staying-secure/repro.md +++ b/content/chainguard/chainguard-images/staying-secure/repro.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 010 toc: true +contentType: "conceptual" --- {{< youtube 0Qn2J89UEvI >}} diff --git a/content/chainguard/chainguard-images/staying-secure/security-advisories/_index.md b/content/chainguard/chainguard-images/staying-secure/security-advisories/_index.md index 1c4e3c2ee3..daa0549ac5 100644 --- a/content/chainguard/chainguard-images/staying-secure/security-advisories/_index.md +++ b/content/chainguard/chainguard-images/staying-secure/security-advisories/_index.md @@ -8,4 +8,5 @@ lastmod: 2024-07-26T18:09:12+00:00 draft: false images: [] weight: 020 ---- \ No newline at end of file +contentType: "product-docs" +--- diff --git a/content/chainguard/chainguard-images/staying-secure/security-advisories/how-chainguard-issues/index.md b/content/chainguard/chainguard-images/staying-secure/security-advisories/how-chainguard-issues/index.md index 087b87d8f5..d6cf77e911 100644 --- a/content/chainguard/chainguard-images/staying-secure/security-advisories/how-chainguard-issues/index.md +++ b/content/chainguard/chainguard-images/staying-secure/security-advisories/how-chainguard-issues/index.md @@ -15,6 +15,7 @@ menu: parent: "security-advisories" weight: 020 toc: true +contentType: "product-docs" --- When you scan a newly-built Chainguard Container with a vulnerability scanner, typically, no CVEs will be reported. However, as software packages age, more vulnerabilities are reported and CVEs will begin to accumulate in container images. When this happens, Chainguard releases security advisories to communicate these vulnerabilities to downstream images users. diff --git a/content/chainguard/chainguard-images/staying-secure/security-advisories/how-to-use/index.md b/content/chainguard/chainguard-images/staying-secure/security-advisories/how-to-use/index.md index 320a60a63a..4a81a49439 100644 --- a/content/chainguard/chainguard-images/staying-secure/security-advisories/how-to-use/index.md +++ b/content/chainguard/chainguard-images/staying-secure/security-advisories/how-to-use/index.md @@ -18,6 +18,7 @@ menu: parent: "chainguard-images" weight: 010 toc: true +contentType: "how-to-guide" --- When using scanners such as [Grype](https://github.com/anchore/grype) or [Docker Scout](https://docs.docker.com/scout/) to scan for vulnerabilities in Chainguard Containers, you'll often find that there are few or no CVEs present. However, CVEs can sometimes be found in Chainguard Containers, and you may also encounter CVEs if you're using older tags. In these cases, you will likely wish to check Chainguard's security advisories for information on which CVEs will cause security issues in your deployment. diff --git a/content/chainguard/chainguard-images/staying-secure/security-advisories/managing-advisories/index.md b/content/chainguard/chainguard-images/staying-secure/security-advisories/managing-advisories/index.md index 41a4a2c69e..1bce236c22 100644 --- a/content/chainguard/chainguard-images/staying-secure/security-advisories/managing-advisories/index.md +++ b/content/chainguard/chainguard-images/staying-secure/security-advisories/managing-advisories/index.md @@ -15,6 +15,7 @@ menu: parent: "security-advisories" weight: 030 toc: true +contentType: "how-to-guide" --- > **Note**: This document is deprecated as of June 2025. diff --git a/content/chainguard/chainguard-images/staying-secure/updating-images/_index.md b/content/chainguard/chainguard-images/staying-secure/updating-images/_index.md index 4f2ea53e00..8371d68721 100644 --- a/content/chainguard/chainguard-images/staying-secure/updating-images/_index.md +++ b/content/chainguard/chainguard-images/staying-secure/updating-images/_index.md @@ -10,4 +10,5 @@ lastmod: 2024-12-19T08:49:15+00:00 draft: false images: [] weight: 015 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/staying-secure/updating-images/considerations-for-image-updates.md b/content/chainguard/chainguard-images/staying-secure/updating-images/considerations-for-image-updates.md index 2226cfa18f..4fe7b83c33 100644 --- a/content/chainguard/chainguard-images/staying-secure/updating-images/considerations-for-image-updates.md +++ b/content/chainguard/chainguard-images/staying-secure/updating-images/considerations-for-image-updates.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 005 toc: true +contentType: "conceptual" --- Chainguard rebuilds container images daily to ensure the latest security patches are always included, addressing a critical challenge in container security. While keeping images up-to-date is essential for receiving security updates and new features, updates must be balanced with stability concerns since any code change can potentially introduce breaking changes or impact dependent systems. diff --git a/content/chainguard/chainguard-images/staying-secure/updating-images/digestabot.md b/content/chainguard/chainguard-images/staying-secure/updating-images/digestabot.md index 98691389a8..546e299893 100644 --- a/content/chainguard/chainguard-images/staying-secure/updating-images/digestabot.md +++ b/content/chainguard/chainguard-images/staying-secure/updating-images/digestabot.md @@ -16,6 +16,7 @@ menu: parent: "chainguard-images" weight: 025 toc: true +contentType: "tutorial" --- {{< youtube 7WvzkwS9yms >}} diff --git a/content/chainguard/chainguard-images/staying-secure/updating-images/how-eol-software-accumulates-cves/index.md b/content/chainguard/chainguard-images/staying-secure/updating-images/how-eol-software-accumulates-cves/index.md index 182a630b33..50468b1515 100644 --- a/content/chainguard/chainguard-images/staying-secure/updating-images/how-eol-software-accumulates-cves/index.md +++ b/content/chainguard/chainguard-images/staying-secure/updating-images/how-eol-software-accumulates-cves/index.md @@ -16,6 +16,7 @@ menu: parent: "chainguard-images" weight: 010 toc: true +contentType: "conceptual" --- Typically, specific versions of software receive updates on a schedule for a set amount of time. Eventually, though, every version of software will stop receiving support. When project maintainers stop providing updates, it's known as the *End-of-Life* (EOL) stage. diff --git a/content/chainguard/chainguard-images/staying-secure/updating-images/renovate/index.md b/content/chainguard/chainguard-images/staying-secure/updating-images/renovate/index.md index 2623ff826a..9cdde87dce 100644 --- a/content/chainguard/chainguard-images/staying-secure/updating-images/renovate/index.md +++ b/content/chainguard/chainguard-images/staying-secure/updating-images/renovate/index.md @@ -16,6 +16,7 @@ menu: parent: "chainguard-images" weight: 020 toc: true +contentType: "tutorial" --- [Renovate](https://github.com/renovatebot/renovate) can be used to alert on updates to Chainguard Containers. This can be an effective way to keep your images up-to-date and free of CVEs. This article explains how to configure Renovate to support Chainguard Containers. diff --git a/content/chainguard/chainguard-images/staying-secure/updating-images/strategies-tools-updating-images/index.md b/content/chainguard/chainguard-images/staying-secure/updating-images/strategies-tools-updating-images/index.md index 529fdb013e..0922d017bf 100644 --- a/content/chainguard/chainguard-images/staying-secure/updating-images/strategies-tools-updating-images/index.md +++ b/content/chainguard/chainguard-images/staying-secure/updating-images/strategies-tools-updating-images/index.md @@ -16,6 +16,7 @@ menu: parent: "chainguard-images" weight: 015 toc: true +contentType: "how-to-guide" --- When it comes to keeping a system secure, one of the most important measures you can take is to regularly apply updates. In modern, containerized infrastructures, this normally means updating containers to use only the latest container images that are still maintained. A casual observer might expect such a standard and important task to have agreed-on best practices and standardized tooling, but they might be surprised by the wide variety of different solutions and opinions on this problem. diff --git a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/_index.md b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/_index.md index e0a3e4e555..b3522ea69d 100644 --- a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/_index.md +++ b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/_index.md @@ -11,4 +11,5 @@ lastmod: 2024-06-17T08:49:15+00:00 draft: false images: [] weight: 025 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/false-results.md b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/false-results.md index 2eea172f55..7d3cd6bf47 100644 --- a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/false-results.md +++ b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/false-results.md @@ -19,6 +19,7 @@ menu: parent: "scanners" weight: 030 toc: true +contentType: "conceptual" --- A *vulnerability scanner* is a tool that analyzes your software components and reports any [CVEs](/software-security/cves/cve-intro/) it finds. Using a vulnerability scanner to find CVEs that impact your system is a critical step in [software vulnerability remediation](/software-security/cves/cve-remediation/), but as you begin to triage scanner-reported vulnerabilities, you may find that your scanner's results are not perfectly accurate. diff --git a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/grype-tutorial/index.md b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/grype-tutorial/index.md index 6c5e04ad2e..a986140977 100644 --- a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/grype-tutorial/index.md +++ b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/grype-tutorial/index.md @@ -16,6 +16,7 @@ menu: parent: "scanners" weight: 100 toc: true +contentType: "tutorial" --- [Grype](https://github.com/anchore/grype) is a vulnerability scanner for container images and filesystems developed and maintained by [Anchore](https://anchore.com/) and written in the Go programming language. Grype can scan from Docker, OCI, Singularity, podman, image archives, and local directory. Grype is compatible with SBOMs generated by [Syft](https://github.com/anchore/syft), and Grype's [vulnerability database](https://github.com/anchore/grype-db) draws from a wide variety of sources, including [Wolfi SecDB]( https://github.com/wolfi-dev/wolfictl/blob/main/docs/cmd/wolfictl_advisory_secdb.md). diff --git a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/trivy-tutorial/index.md b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/trivy-tutorial/index.md index f0e72c0f5e..5f1f18ad77 100644 --- a/content/chainguard/chainguard-images/staying-secure/working-with-scanners/trivy-tutorial/index.md +++ b/content/chainguard/chainguard-images/staying-secure/working-with-scanners/trivy-tutorial/index.md @@ -16,6 +16,7 @@ menu: parent: "scanners" weight: 120 toc: true +contentType: "tutorial" --- [Trivy](https://github.com/aquasecurity/trivy) is a vulnerability scanner for a wide variety of software artifacts and deployments. Trivy is written in the Go programming language and is maintained by [Aqua Security](https://www.aquasec.com/). Trivy targets container images, VMs, filesystems, remote GitHub repositories, and Kubernetes and Amazon Web Services deployments. The tool can be used to detect known vulnerabilities (CVEs), generate SBOMs, analyze licenses, and scan for misconfigurations and exposed secrets. Trivy can be installed from [package managers](#package-managers) or as a [binary](#binary-installation), and can also be run as a [container image](#container-image). diff --git a/content/chainguard/chainguard-images/tooling/_index.md b/content/chainguard/chainguard-images/tooling/_index.md index 14c0926766..d6d755ecd1 100644 --- a/content/chainguard/chainguard-images/tooling/_index.md +++ b/content/chainguard/chainguard-images/tooling/_index.md @@ -8,4 +8,5 @@ lastmod: 2025-09-11T08:49:15+00:00 draft: false images: [] weight: 039 +contentType: "how-to-guide" --- diff --git a/content/chainguard/chainguard-images/tooling/building-go-containers-with-ko.md b/content/chainguard/chainguard-images/tooling/building-go-containers-with-ko.md index 16795a4543..578bcbfda7 100644 --- a/content/chainguard/chainguard-images/tooling/building-go-containers-with-ko.md +++ b/content/chainguard/chainguard-images/tooling/building-go-containers-with-ko.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-images" weight: 001 toc: true +contentType: "how-to-guide" --- [Ko](https://ko.build/) is a tool for building Go applications into container images without using Dockerfiles. When combined with Chainguard's minimal containers, Ko creates smaller and more secure container runtimes with only your application and its essential dependencies. diff --git a/content/chainguard/chainguard-images/tooling/building-java-containers-with-jib.md b/content/chainguard/chainguard-images/tooling/building-java-containers-with-jib.md index 6f6340af37..5646652786 100644 --- a/content/chainguard/chainguard-images/tooling/building-java-containers-with-jib.md +++ b/content/chainguard/chainguard-images/tooling/building-java-containers-with-jib.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-images" weight: 001 toc: true +contentType: "how-to-guide" --- [Google's Jib](https://github.com/GoogleContainerTools/jib) is a container diff --git a/content/chainguard/chainguard-images/troubleshooting/_index.md b/content/chainguard/chainguard-images/troubleshooting/_index.md index cb5dd30086..1d20d6ea1c 100644 --- a/content/chainguard/chainguard-images/troubleshooting/_index.md +++ b/content/chainguard/chainguard-images/troubleshooting/_index.md @@ -8,4 +8,5 @@ lastmod: 2025-04-11T08:49:15+00:00 draft: false images: [] weight: 040 +contentType: "product-docs" --- diff --git a/content/chainguard/chainguard-images/troubleshooting/debugging-distroless-images.md b/content/chainguard/chainguard-images/troubleshooting/debugging-distroless-images.md index d0c317c443..e66ad45db1 100644 --- a/content/chainguard/chainguard-images/troubleshooting/debugging-distroless-images.md +++ b/content/chainguard/chainguard-images/troubleshooting/debugging-distroless-images.md @@ -16,6 +16,7 @@ menu: parent: "chainguard-images" weight: 005 toc: true +contentType: "how-to-guide" --- Because distroless images are minimal and don't include a package manager or a shell, debugging issues that occur at runtime may require a distinctive approach. diff --git a/content/chainguard/chainguard-images/troubleshooting/debugging_distroless.md b/content/chainguard/chainguard-images/troubleshooting/debugging_distroless.md index 72db15b762..a19954bf87 100644 --- a/content/chainguard/chainguard-images/troubleshooting/debugging_distroless.md +++ b/content/chainguard/chainguard-images/troubleshooting/debugging_distroless.md @@ -17,6 +17,7 @@ menu: parent: "chainguard-images" weight: 010 toc: true +contentType: "how-to-guide" --- {{< youtube ELxIBB2Uy2E >}} diff --git a/content/chainguard/chainguard-images/troubleshooting/kubectl_cdebug.md b/content/chainguard/chainguard-images/troubleshooting/kubectl_cdebug.md index 6485f71e80..0e69f0dece 100644 --- a/content/chainguard/chainguard-images/troubleshooting/kubectl_cdebug.md +++ b/content/chainguard/chainguard-images/troubleshooting/kubectl_cdebug.md @@ -19,6 +19,7 @@ menu: parent: "chainguard-images" weight: 015 toc: true +contentType: "how-to-guide" --- {{< youtube LQUZGE_w-20 >}} diff --git a/content/chainguard/chainguard-images/vuln-comparison/_index.md b/content/chainguard/chainguard-images/vuln-comparison/_index.md index 0bb01f0575..e439f4d994 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/_index.md +++ b/content/chainguard/chainguard-images/vuln-comparison/_index.md @@ -45,4 +45,5 @@ tutorials: [ }, ] +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/bash.md b/content/chainguard/chainguard-images/vuln-comparison/bash.md index ee1714aa1c..3d6ba72549 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/bash.md +++ b/content/chainguard/chainguard-images/vuln-comparison/bash.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: bash +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/busybox.md b/content/chainguard/chainguard-images/vuln-comparison/busybox.md index c4fb763002..39a6f05b59 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/busybox.md +++ b/content/chainguard/chainguard-images/vuln-comparison/busybox.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: busybox +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/curl.md b/content/chainguard/chainguard-images/vuln-comparison/curl.md index 48c0913551..e7ee1345d1 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/curl.md +++ b/content/chainguard/chainguard-images/vuln-comparison/curl.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: curl +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/deno.md b/content/chainguard/chainguard-images/vuln-comparison/deno.md index d094cc10c2..90f5378dfe 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/deno.md +++ b/content/chainguard/chainguard-images/vuln-comparison/deno.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: deno +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/dex.md b/content/chainguard/chainguard-images/vuln-comparison/dex.md index 2d1d74f26b..8f3e518a5a 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/dex.md +++ b/content/chainguard/chainguard-images/vuln-comparison/dex.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: dex +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/dotnet-runtime.md b/content/chainguard/chainguard-images/vuln-comparison/dotnet-runtime.md index 3e1cf6c7f8..7e4f8bc8ee 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/dotnet-runtime.md +++ b/content/chainguard/chainguard-images/vuln-comparison/dotnet-runtime.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: dotnet-runtime +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/dotnet-sdk.md b/content/chainguard/chainguard-images/vuln-comparison/dotnet-sdk.md index 26c36f71c6..40ab9df9ab 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/dotnet-sdk.md +++ b/content/chainguard/chainguard-images/vuln-comparison/dotnet-sdk.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: dotnet-sdk +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/etcd.md b/content/chainguard/chainguard-images/vuln-comparison/etcd.md index 8d107ea555..74efd320d1 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/etcd.md +++ b/content/chainguard/chainguard-images/vuln-comparison/etcd.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: etcd +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/git.md b/content/chainguard/chainguard-images/vuln-comparison/git.md index 007db239a8..de20e34b05 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/git.md +++ b/content/chainguard/chainguard-images/vuln-comparison/git.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: git +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/go.md b/content/chainguard/chainguard-images/vuln-comparison/go.md index 1132c21ebb..f3b9497ed9 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/go.md +++ b/content/chainguard/chainguard-images/vuln-comparison/go.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: go +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/gradle.md b/content/chainguard/chainguard-images/vuln-comparison/gradle.md index 4f0ee1ced7..77c74f7137 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/gradle.md +++ b/content/chainguard/chainguard-images/vuln-comparison/gradle.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: gradle +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/haproxy.md b/content/chainguard/chainguard-images/vuln-comparison/haproxy.md index dca8f654c8..2fa2b420e4 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/haproxy.md +++ b/content/chainguard/chainguard-images/vuln-comparison/haproxy.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: haproxy +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/jenkins.md b/content/chainguard/chainguard-images/vuln-comparison/jenkins.md index 61e72f4fb5..00a275dc13 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/jenkins.md +++ b/content/chainguard/chainguard-images/vuln-comparison/jenkins.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: jenkins +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/kube-state-metrics.md b/content/chainguard/chainguard-images/vuln-comparison/kube-state-metrics.md index 01ed215bf7..7158b18e8b 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/kube-state-metrics.md +++ b/content/chainguard/chainguard-images/vuln-comparison/kube-state-metrics.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: kube-state-metrics +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/mariadb.md b/content/chainguard/chainguard-images/vuln-comparison/mariadb.md index 61ac33af4c..9b385ed2cf 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/mariadb.md +++ b/content/chainguard/chainguard-images/vuln-comparison/mariadb.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: mariadb +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/maven.md b/content/chainguard/chainguard-images/vuln-comparison/maven.md index db54fd8ae8..f5d1785252 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/maven.md +++ b/content/chainguard/chainguard-images/vuln-comparison/maven.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: maven +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/memcached.md b/content/chainguard/chainguard-images/vuln-comparison/memcached.md index 7dae66b7bf..55bbea881d 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/memcached.md +++ b/content/chainguard/chainguard-images/vuln-comparison/memcached.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: memcached +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/minio-client.md b/content/chainguard/chainguard-images/vuln-comparison/minio-client.md index a6d4174603..fb4f68b84a 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/minio-client.md +++ b/content/chainguard/chainguard-images/vuln-comparison/minio-client.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: minio-client +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/minio.md b/content/chainguard/chainguard-images/vuln-comparison/minio.md index 231d4e1c2b..f732fe9ad4 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/minio.md +++ b/content/chainguard/chainguard-images/vuln-comparison/minio.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: minio +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/nats.md b/content/chainguard/chainguard-images/vuln-comparison/nats.md index 9f3801384a..ea0cd37262 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/nats.md +++ b/content/chainguard/chainguard-images/vuln-comparison/nats.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: nats +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/nginx.md b/content/chainguard/chainguard-images/vuln-comparison/nginx.md index 5c84c76ea7..d62530dc7e 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/nginx.md +++ b/content/chainguard/chainguard-images/vuln-comparison/nginx.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: nginx +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/node.md b/content/chainguard/chainguard-images/vuln-comparison/node.md index 9b39e8b863..cb08fe0b35 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/node.md +++ b/content/chainguard/chainguard-images/vuln-comparison/node.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: node +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/opensearch.md b/content/chainguard/chainguard-images/vuln-comparison/opensearch.md index e913957af3..8f12cc23c0 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/opensearch.md +++ b/content/chainguard/chainguard-images/vuln-comparison/opensearch.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: opensearch +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/php.md b/content/chainguard/chainguard-images/vuln-comparison/php.md index 05d61af8ac..605d572ea5 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/php.md +++ b/content/chainguard/chainguard-images/vuln-comparison/php.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: php +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/postgres.md b/content/chainguard/chainguard-images/vuln-comparison/postgres.md index 9f0a05b2a1..279f15d1c1 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/postgres.md +++ b/content/chainguard/chainguard-images/vuln-comparison/postgres.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: postgres +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/python.md b/content/chainguard/chainguard-images/vuln-comparison/python.md index 1ef71f4220..6661142d44 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/python.md +++ b/content/chainguard/chainguard-images/vuln-comparison/python.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: python +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/r-base.md b/content/chainguard/chainguard-images/vuln-comparison/r-base.md index c6b72b9a6d..1407a5ffd5 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/r-base.md +++ b/content/chainguard/chainguard-images/vuln-comparison/r-base.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: r-base +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/rabbitmq.md b/content/chainguard/chainguard-images/vuln-comparison/rabbitmq.md index d8c915b323..436e738980 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/rabbitmq.md +++ b/content/chainguard/chainguard-images/vuln-comparison/rabbitmq.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: rabbitmq +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/redis.md b/content/chainguard/chainguard-images/vuln-comparison/redis.md index ef8f4ab018..fc54923b4f 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/redis.md +++ b/content/chainguard/chainguard-images/vuln-comparison/redis.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: redis +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/ruby.md b/content/chainguard/chainguard-images/vuln-comparison/ruby.md index c92dfedece..07b362be15 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/ruby.md +++ b/content/chainguard/chainguard-images/vuln-comparison/ruby.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: ruby +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/rust.md b/content/chainguard/chainguard-images/vuln-comparison/rust.md index 384e6ff26a..5745593577 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/rust.md +++ b/content/chainguard/chainguard-images/vuln-comparison/rust.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: rust +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/telegraf.md b/content/chainguard/chainguard-images/vuln-comparison/telegraf.md index 1045763932..18206f4383 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/telegraf.md +++ b/content/chainguard/chainguard-images/vuln-comparison/telegraf.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: telegraf +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/traefik.md b/content/chainguard/chainguard-images/vuln-comparison/traefik.md index d6e74321c2..6a4fbe77d5 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/traefik.md +++ b/content/chainguard/chainguard-images/vuln-comparison/traefik.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: traefik +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/wait-for-it.md b/content/chainguard/chainguard-images/vuln-comparison/wait-for-it.md index 9c6d6685c7..53c517da36 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/wait-for-it.md +++ b/content/chainguard/chainguard-images/vuln-comparison/wait-for-it.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: wait-for-it +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/wolfi-base.md b/content/chainguard/chainguard-images/vuln-comparison/wolfi-base.md index a8b751a77e..7a5937a911 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/wolfi-base.md +++ b/content/chainguard/chainguard-images/vuln-comparison/wolfi-base.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: wolfi-base +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-images/vuln-comparison/zookeeper.md b/content/chainguard/chainguard-images/vuln-comparison/zookeeper.md index 6bca595eda..58a7ebb3c2 100644 --- a/content/chainguard/chainguard-images/vuln-comparison/zookeeper.md +++ b/content/chainguard/chainguard-images/vuln-comparison/zookeeper.md @@ -9,5 +9,6 @@ images: [] weight: 600 toc: false linktitle: zookeeper +contentType: "conceptual" --- diff --git a/content/chainguard/chainguard-os/_index.md b/content/chainguard/chainguard-os/_index.md index 889d8b6f59..30ee708a5e 100644 --- a/content/chainguard/chainguard-os/_index.md +++ b/content/chainguard/chainguard-os/_index.md @@ -7,4 +7,5 @@ date: 2025-07-03T08:48:23+00:00 lastmod: 2025-07-03T08:48:23+00:00 draft: false weight: 030 ---- \ No newline at end of file +contentType: "product-docs" +--- diff --git a/content/chainguard/chainguard-os/faq.md b/content/chainguard/chainguard-os/faq.md index 692b1df7b9..260041696e 100644 --- a/content/chainguard/chainguard-os/faq.md +++ b/content/chainguard/chainguard-os/faq.md @@ -14,6 +14,7 @@ menu: parent: "chainguard-os" weight: 020 toc: true +contentType: "product-docs" --- This FAQ addresses common questions about [Chainguard OS](/chainguard/chainguard-os/), the security-focused operating system that powers Chainguard's production container images and enterprise features. @@ -51,4 +52,4 @@ Chainguard OS is designed specifically for more secure and containerized applica * Security — reduced attack surface, hardened builds, and continuous patching. * Compliance — automatically generated SBOMs and provenance metadata for all artifacts. * Operational efficiency — reduces long upgrade cycles and manual patching. -* Supply chain integrity — built using the [Chainguard Factory](https://www.youtube.com/watch?v=iU9hmW6hrGs) and adhering to [SLSA](https://slsa.dev/) standards. \ No newline at end of file +* Supply chain integrity — built using the [Chainguard Factory](https://www.youtube.com/watch?v=iU9hmW6hrGs) and adhering to [SLSA](https://slsa.dev/) standards. diff --git a/content/chainguard/chainguard-os/overview.md b/content/chainguard/chainguard-os/overview.md index 103e989cab..d9f2a6ef57 100644 --- a/content/chainguard/chainguard-os/overview.md +++ b/content/chainguard/chainguard-os/overview.md @@ -14,6 +14,7 @@ menu: parent: "chainguard-os" weight: 010 toc: true +contentType: "product-docs" --- Chainguard OS provides a more secure operating system that powers all Chainguard container images, built specifically to address modern supply chain security challenges. Unlike traditional Linux distributions designed for general-purpose computing, Chainguard OS focuses exclusively on container workloads, enabling faster security updates and significantly reduced attack surface. @@ -81,4 +82,4 @@ Traditional Linux distributions often bundle a broad set of packages and feature The operating system is built to take advantage of modern containerization practices and supports declarative, reproducible builds. Combined with automated tooling, this design enables consistent delivery of secure, traceable container images. -Chainguard OS is not intended as a general-purpose distribution; instead, it serves as a foundational layer for secure application workloads, particularly in environments that require strict controls on software provenance, compliance, and runtime behavior. \ No newline at end of file +Chainguard OS is not intended as a general-purpose distribution; instead, it serves as a foundational layer for secure application workloads, particularly in environments that require strict controls on software provenance, compliance, and runtime behavior. diff --git a/content/chainguard/factory/_index.md b/content/chainguard/factory/_index.md index 0a3d46bf61..5d1257f7a8 100644 --- a/content/chainguard/factory/_index.md +++ b/content/chainguard/factory/_index.md @@ -7,6 +7,7 @@ date: 2025-07-31T16:00:00+00:00 lastmod: 2025-08-05T18:57:13+00:00 draft: false weight: 040 +contentType: "product-docs" --- The Chainguard Factory is our automated build system that continuously monitors, builds, tests, and publishes secure software artifacts from thousands of open source projects. diff --git a/content/chainguard/factory/assemble.md b/content/chainguard/factory/assemble.md index 02fad4b81f..c13fbe7c09 100644 --- a/content/chainguard/factory/assemble.md +++ b/content/chainguard/factory/assemble.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-factory" weight: 100 toc: true +contentType: "product-docs" --- {{< youtube iU9hmW6hrGs >}} diff --git a/content/chainguard/factory/faq.md b/content/chainguard/factory/faq.md index 16c131a07f..48303fe4c6 100644 --- a/content/chainguard/factory/faq.md +++ b/content/chainguard/factory/faq.md @@ -14,6 +14,7 @@ menu: parent: "chainguard-factory" weight: 010 toc: true +contentType: "product-docs" --- ## What is the Chainguard Factory? diff --git a/content/chainguard/factory/future-of-factory.md b/content/chainguard/factory/future-of-factory.md index 3e3b22effb..e4c6965112 100644 --- a/content/chainguard/factory/future-of-factory.md +++ b/content/chainguard/factory/future-of-factory.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-factory" weight: 060 toc: true +contentType: "product-docs" --- {{< youtube eF9EYK6AKPA >}} @@ -37,4 +38,4 @@ So there's plenty of room to expand. The Factory gives us all of the power that **Dustin Kirkland**: Yeah, so I mean, I think we've taken—very importantly, I think we've taken a key step in supply chain security by bootstrapping everything, building it from source, doing it well, doing it the right way, doing it all day every day, 24/7, 365, constantly. We don't snapshot the world and then attempt to backport patches to a version that just constantly drifts from where upstream is. -And that goes for compilers and toolchains, script interpreters, as well as the end applications, databases, and application frameworks. We're constantly rebuilding with exactly the same work that the upstream maintainers are using. And that fact, I think, is the important part. And what makes the rolling distro work for us is that we're matching the pace of upstream development here. \ No newline at end of file +And that goes for compilers and toolchains, script interpreters, as well as the end applications, databases, and application frameworks. We're constantly rebuilding with exactly the same work that the upstream maintainers are using. And that fact, I think, is the important part. And what makes the rolling distro work for us is that we're matching the pace of upstream development here. diff --git a/content/chainguard/factory/overview/index.md b/content/chainguard/factory/overview/index.md index aa826b4def..2ed2e04deb 100644 --- a/content/chainguard/factory/overview/index.md +++ b/content/chainguard/factory/overview/index.md @@ -14,6 +14,7 @@ menu: parent: "chainguard-factory" weight: 005 toc: true +contentType: "product-docs" --- Chainguard Factory is the automated build infrastructure that continuously monitors, builds, and updates thousands of open source projects to deliver containers, libraries, and VMs with a strong security posture and the latest patches. This massive automation system tackles one of the industry's biggest challenges: keeping software dependencies current at scale while maintaining security and compatibility across the entire open source ecosystem. diff --git a/content/chainguard/factory/touring-the-factory.md b/content/chainguard/factory/touring-the-factory.md index e1e02499f0..c2e9969258 100644 --- a/content/chainguard/factory/touring-the-factory.md +++ b/content/chainguard/factory/touring-the-factory.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-factory" weight: 030 toc: true +contentType: "product-docs" --- {{< youtube gg_EdCrhzL4 >}} @@ -25,4 +26,4 @@ toc: true We start from a fully bootstrapped-from-source version of the source code. We pull the source code down, we apply our build rules, build that code, test that code, sign that code, and publish that code—first as packages. -And then we take those packages and put them into various different form factors. In the nominal case, we put them into container images that typically run inside of a Docker or Kubernetes. But we also can take those same packages and build virtual machine appliances, fully booting with a Linux kernel. And then we also twist some of these into libraries, also built entirely from source. \ No newline at end of file +And then we take those packages and put them into various different form factors. In the nominal case, we put them into container images that typically run inside of a Docker or Kubernetes. But we also can take those same packages and build virtual machine appliances, fully booting with a Linux kernel. And then we also twist some of these into libraries, also built entirely from source. diff --git a/content/chainguard/factory/what-factory-builds.md b/content/chainguard/factory/what-factory-builds.md index 14566d53ff..80d537012e 100644 --- a/content/chainguard/factory/what-factory-builds.md +++ b/content/chainguard/factory/what-factory-builds.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-factory" weight: 020 toc: true +contentType: "product-docs" --- {{< youtube V4xIcHDhBhw >}} @@ -25,4 +26,4 @@ toc: true Out of that comes a series of artifacts. We produce APKs, which is our package format. We produce container images, which is the output that our customers typically run in their Docker and Kubernetes environments. We also produce virtual machines that get loaded automatically into Google, Amazon, and Azure public clouds, as well as images that can run in QEMU and VMware on-prem. -And it also produces libraries. So we're rebuilding from source not just open source projects that yield packages, but we're also rebuilding open source software that yields Java artifacts—JAR files—and Python modules—Python wheels. All of those are packaged up and built and tested from a Chainguard perspective, and we publish those into a variety of different registries and artifact repositories that our customers can then consume securely inside of their environment. \ No newline at end of file +And it also produces libraries. So we're rebuilding from source not just open source projects that yield packages, but we're also rebuilding open source software that yields Java artifacts—JAR files—and Python modules—Python wheels. All of those are packaged up and built and tested from a Chainguard perspective, and we publish those into a variety of different registries and artifact repositories that our customers can then consume securely inside of their environment. diff --git a/content/chainguard/factory/what-is-factory.md b/content/chainguard/factory/what-is-factory.md index 84d3636b8f..8d3baf369b 100644 --- a/content/chainguard/factory/what-is-factory.md +++ b/content/chainguard/factory/what-is-factory.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-factory" weight: 001 toc: true +contentType: "product-docs" --- {{< youtube KyO4ppSR9Lo >}} @@ -25,4 +26,4 @@ toc: true And then, if all of that works, publishing a new package with signatures of that package that's been rebuilt from source, bootstrapped from source with our toolchain and our testing. -Once we have that package, we're then able to assemble that package into multiple different image formats. We can do container images, we can do virtual machine images, and we're now building libraries—Java, Python, and Node libraries—from source. \ No newline at end of file +Once we have that package, we're then able to assemble that package into multiple different image formats. We can do container images, we can do virtual machine images, and we're now building libraries—Java, Python, and Node libraries—from source. diff --git a/content/chainguard/libraries/_index.md b/content/chainguard/libraries/_index.md index 6e882917e7..e86e700a44 100644 --- a/content/chainguard/libraries/_index.md +++ b/content/chainguard/libraries/_index.md @@ -7,4 +7,5 @@ date: 2025-03-25T08:04:00+00:00 lastmod: 2025-07-23T15:09:59+00:00 draft: false weight: 020 +contentType: "product-docs" --- diff --git a/content/chainguard/libraries/access.md b/content/chainguard/libraries/access.md index a4efdbb8db..d704757b53 100644 --- a/content/chainguard/libraries/access.md +++ b/content/chainguard/libraries/access.md @@ -12,6 +12,7 @@ menu: parent: "libraries" weight: 002 toc: true +contentType: "product-docs" --- Chainguard Libraries provide controlled access to security-enhanced Java and diff --git a/content/chainguard/libraries/cve-remediation.md b/content/chainguard/libraries/cve-remediation.md index c011616436..44da0460f9 100644 --- a/content/chainguard/libraries/cve-remediation.md +++ b/content/chainguard/libraries/cve-remediation.md @@ -12,6 +12,7 @@ menu: parent: "libraries" weight: 005 toc: true +contentType: "product-docs" --- CVE remediation is a feature in Chainguard Libraries that provides security diff --git a/content/chainguard/libraries/faq.md b/content/chainguard/libraries/faq.md index 4e9ca921ca..0a830f9827 100644 --- a/content/chainguard/libraries/faq.md +++ b/content/chainguard/libraries/faq.md @@ -12,6 +12,7 @@ menu: parent: "libraries" weight: 010 toc: true +contentType: "product-docs" --- ## What security issues can Chainguard Libraries prevent? diff --git a/content/chainguard/libraries/how-libraries-help-developers.md b/content/chainguard/libraries/how-libraries-help-developers.md index 94c7070fe9..622620cb46 100644 --- a/content/chainguard/libraries/how-libraries-help-developers.md +++ b/content/chainguard/libraries/how-libraries-help-developers.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-libraries" weight: 070 toc: true +contentType: "product-docs" --- {{< youtube yvo2SyUeaJM >}} @@ -23,4 +24,4 @@ toc: true **Dustin Kirkland**: Yeah, so building off of that Chainguard Factory, we've actually repurposed all of that automation to not just build packages and containers, but actually fetch libraries directly from their upstream source and recompile those Java binaries—JARs—and those Python binaries—wheels—in a new format, or in the same format rather, but totally bootstrapped from source. The fact that we can rebuild those libraries means that we can actually patch them if necessary. -Now, in doing so, we've created an entire repository of Python wheels and Java JARs that we can publish and hydrate into a customer's environment, so that their developers can retrieve their libraries from a secure source, from a trusted source, and avoid malicious packages—deliberately modified or intentionally compromised packages—which, you know, we find in PyPI.org or in Maven Central from time to time. But Chainguard building those from source ensures that that entire open source ecosystem is secured in the same way that we're securing the packages and the container ecosystems. \ No newline at end of file +Now, in doing so, we've created an entire repository of Python wheels and Java JARs that we can publish and hydrate into a customer's environment, so that their developers can retrieve their libraries from a secure source, from a trusted source, and avoid malicious packages—deliberately modified or intentionally compromised packages—which, you know, we find in PyPI.org or in Maven Central from time to time. But Chainguard building those from source ensures that that entire open source ecosystem is secured in the same way that we're securing the packages and the container ecosystems. diff --git a/content/chainguard/libraries/how-libraries-plug-into-workflow.md b/content/chainguard/libraries/how-libraries-plug-into-workflow.md index 58721c2410..d9aae32351 100644 --- a/content/chainguard/libraries/how-libraries-plug-into-workflow.md +++ b/content/chainguard/libraries/how-libraries-plug-into-workflow.md @@ -13,6 +13,7 @@ menu: parent: "chainguard-libraries" weight: 070 toc: true +contentType: "product-docs" --- {{< youtube SBisxaL855k >}} @@ -27,4 +28,4 @@ So from that sense, we're certainly not an artifact registry. You use the artifa **Interviewer**: So once the artifact registry is set up, is there any changes to actual developers' workflow, or will it just work? -**Dustin Kirkland**: Typically not. I mean, if inside of your organization you already have an artifact registry and your developers are pip installing or maybe even importing those classes and libraries from that artifact repository, we're just replacing the artifacts that may have additional vulnerabilities or potentially malicious code with artifacts that have fewer vulnerabilities and are immune to that malicious code. \ No newline at end of file +**Dustin Kirkland**: Typically not. I mean, if inside of your organization you already have an artifact registry and your developers are pip installing or maybe even importing those classes and libraries from that artifact repository, we're just replacing the artifacts that may have additional vulnerabilities or potentially malicious code with artifacts that have fewer vulnerabilities and are immune to that malicious code. diff --git a/content/chainguard/libraries/java/_index.md b/content/chainguard/libraries/java/_index.md index 8ae9f208f6..156e0b73e6 100644 --- a/content/chainguard/libraries/java/_index.md +++ b/content/chainguard/libraries/java/_index.md @@ -7,4 +7,5 @@ date: 2025-03-25T08:04:00+00:00 lastmod: 2025-03-25T08:04:00+00:00 draft: false weight: 050 ---- \ No newline at end of file +contentType: "product-docs" +--- diff --git a/content/chainguard/libraries/java/build-configuration.md b/content/chainguard/libraries/java/build-configuration.md index c1b7c4afd7..b139b1b1d6 100644 --- a/content/chainguard/libraries/java/build-configuration.md +++ b/content/chainguard/libraries/java/build-configuration.md @@ -12,6 +12,7 @@ menu: parent: "java" weight: 053 toc: true +contentType: "product-docs" --- The configuration for the use of Chainguard Libraries depends on your build diff --git a/content/chainguard/libraries/java/global-configuration.md b/content/chainguard/libraries/java/global-configuration.md index 057c383ab3..5bfefc3730 100644 --- a/content/chainguard/libraries/java/global-configuration.md +++ b/content/chainguard/libraries/java/global-configuration.md @@ -13,6 +13,7 @@ menu: parent: "java" weight: 052 toc: true +contentType: "product-docs" --- Java and JVM library consumption in a large organization is typically managed by diff --git a/content/chainguard/libraries/java/management.md b/content/chainguard/libraries/java/management.md index 7b0a3d6ce1..77d0ffe462 100644 --- a/content/chainguard/libraries/java/management.md +++ b/content/chainguard/libraries/java/management.md @@ -13,6 +13,7 @@ menu: parent: "java" weight: 053 toc: true +contentType: "product-docs" --- Chainguard Libraries for Java operates transparently after completing the [global configuration](/chainguard/libraries/java/global-configuration/) and [build configuration](/chainguard/libraries/java/build-configuration/), automatically providing security-enhanced versions of your Maven dependencies. New artifacts and versions are retrieved from Chainguard's hardened repository when available, while Maven Central and other configured repositories provide fallback access to ensure continuous development workflow without interruption. diff --git a/content/chainguard/libraries/java/overview.md b/content/chainguard/libraries/java/overview.md index 46631ff714..3b3ff797d5 100644 --- a/content/chainguard/libraries/java/overview.md +++ b/content/chainguard/libraries/java/overview.md @@ -12,6 +12,7 @@ menu: parent: "java" weight: 051 toc: true +contentType: "product-docs" --- ## Introduction diff --git a/content/chainguard/libraries/javascript/_index.md b/content/chainguard/libraries/javascript/_index.md index 03671da990..f7ddfa7289 100644 --- a/content/chainguard/libraries/javascript/_index.md +++ b/content/chainguard/libraries/javascript/_index.md @@ -7,4 +7,5 @@ date: 2025-06-05T09:00:00+00:00 lastmod: 2025-06-05T09:00:00+00:00 draft: false weight: 055 ---- \ No newline at end of file +contentType: "product-docs" +--- diff --git a/content/chainguard/libraries/javascript/build-configuration.md b/content/chainguard/libraries/javascript/build-configuration.md index 77a830688e..34fbb5b3ec 100644 --- a/content/chainguard/libraries/javascript/build-configuration.md +++ b/content/chainguard/libraries/javascript/build-configuration.md @@ -12,6 +12,7 @@ menu: parent: "javascript" weight: 053 toc: true +contentType: "product-docs" --- The configuration for the use of Chainguard Libraries depends on your build diff --git a/content/chainguard/libraries/javascript/global-configuration.md b/content/chainguard/libraries/javascript/global-configuration.md index 8cc916f2e2..1d10017bed 100644 --- a/content/chainguard/libraries/javascript/global-configuration.md +++ b/content/chainguard/libraries/javascript/global-configuration.md @@ -13,6 +13,7 @@ menu: parent: "javascript" weight: 052 toc: true +contentType: "product-docs" --- JavaScript and npm package consumption in a large organization is typically diff --git a/content/chainguard/libraries/javascript/overview.md b/content/chainguard/libraries/javascript/overview.md index 83ff9f77f5..1eddc1c78e 100644 --- a/content/chainguard/libraries/javascript/overview.md +++ b/content/chainguard/libraries/javascript/overview.md @@ -12,6 +12,7 @@ menu: parent: "javascript" weight: 051 toc: true +contentType: "product-docs" --- **Chainguard Libraries for JavaScript** is a major ecosystem supported by diff --git a/content/chainguard/libraries/network-requirements.md b/content/chainguard/libraries/network-requirements.md index 7d9ca843a2..932ebdae56 100644 --- a/content/chainguard/libraries/network-requirements.md +++ b/content/chainguard/libraries/network-requirements.md @@ -12,6 +12,7 @@ menu: parent: "libraries" weight: 003 toc: true +contentType: "product-docs" --- Chainguard Libraries require specific network access to ensure secure delivery of hardened Java and Python dependencies to your development environment. This guide details the domains and ports needed for authentication, package downloads, and verification tools. diff --git a/content/chainguard/libraries/overview.md b/content/chainguard/libraries/overview.md index 87216bcc10..358f32f2b2 100644 --- a/content/chainguard/libraries/overview.md +++ b/content/chainguard/libraries/overview.md @@ -14,6 +14,7 @@ menu: parent: "libraries" weight: 001 toc: true +contentType: "product-docs" --- Chainguard Libraries provide enhanced security for open source dependencies in diff --git a/content/chainguard/libraries/python/_index.md b/content/chainguard/libraries/python/_index.md index 42604ea431..23a695f7c7 100644 --- a/content/chainguard/libraries/python/_index.md +++ b/content/chainguard/libraries/python/_index.md @@ -7,4 +7,5 @@ date: 2025-04-09T08:04:00+00:00 lastmod: 2025-07-23T15:09:59+00:00 draft: false weight: 060 +contentType: "product-docs" --- diff --git a/content/chainguard/libraries/python/build-configuration.md b/content/chainguard/libraries/python/build-configuration.md index 85ceace8fa..871b78bca0 100644 --- a/content/chainguard/libraries/python/build-configuration.md +++ b/content/chainguard/libraries/python/build-configuration.md @@ -12,6 +12,7 @@ menu: parent: "python" weight: 053 toc: true +contentType: "product-docs" --- The configuration for the use of Chainguard Libraries depends on how you've set up your build tools and CI/CD workflows. At a high level, adopting the use of Chainguard Libraries in your development, build, and deployment workflows involves the following steps: diff --git a/content/chainguard/libraries/python/global-configuration.md b/content/chainguard/libraries/python/global-configuration.md index 4dcadfad49..0df701caab 100644 --- a/content/chainguard/libraries/python/global-configuration.md +++ b/content/chainguard/libraries/python/global-configuration.md @@ -13,6 +13,7 @@ menu: parent: "python" weight: 052 toc: true +contentType: "product-docs" --- Python library consumption in a large organization is typically managed by a diff --git a/content/chainguard/libraries/python/management.md b/content/chainguard/libraries/python/management.md index 1f4da99908..f675957c62 100644 --- a/content/chainguard/libraries/python/management.md +++ b/content/chainguard/libraries/python/management.md @@ -13,6 +13,7 @@ menu: parent: "python" weight: 053 toc: true +contentType: "product-docs" --- Chainguard Libraries for Python operates transparently after completing the [global configuration](/chainguard/libraries/python/global-configuration/) and [build configuration](/chainguard/libraries/python/build-configuration/), automatically providing security-enhanced versions of your PyPI dependencies. New packages and versions are retrieved from Chainguard's hardened repository when available, while PyPI and other configured repositories provide fallback access to ensure continuous development workflow without interruption. diff --git a/content/chainguard/libraries/python/overview.md b/content/chainguard/libraries/python/overview.md index 57d49d93c9..77b85a93c0 100644 --- a/content/chainguard/libraries/python/overview.md +++ b/content/chainguard/libraries/python/overview.md @@ -12,6 +12,7 @@ menu: parent: "python" weight: 010 toc: true +contentType: "product-docs" --- ## Introduction diff --git a/content/chainguard/libraries/scanners.md b/content/chainguard/libraries/scanners.md index c12f8475b4..66cee4f4a1 100644 --- a/content/chainguard/libraries/scanners.md +++ b/content/chainguard/libraries/scanners.md @@ -12,6 +12,7 @@ menu: parent: "libraries" weight: 006 toc: true +contentType: "product-docs" --- Vulnerability scanners enable you to understand the potential security risks diff --git a/content/chainguard/libraries/verification.md b/content/chainguard/libraries/verification.md index a986fe8792..7d25f52694 100644 --- a/content/chainguard/libraries/verification.md +++ b/content/chainguard/libraries/verification.md @@ -14,6 +14,7 @@ menu: parent: "libraries" weight: 004 toc: true +contentType: "product-docs" --- ## Overview diff --git a/content/chainguard/migration/_index.md b/content/chainguard/migration/_index.md index d12fd45cdb..48126b3a95 100644 --- a/content/chainguard/migration/_index.md +++ b/content/chainguard/migration/_index.md @@ -51,4 +51,5 @@ tutorials: [ }, ] ---- \ No newline at end of file +contentType: "how-to-guide" +--- diff --git a/content/chainguard/migration/compatibility/_index.md b/content/chainguard/migration/compatibility/_index.md index ca3faadf80..26596f0cbd 100644 --- a/content/chainguard/migration/compatibility/_index.md +++ b/content/chainguard/migration/compatibility/_index.md @@ -10,4 +10,5 @@ lastmod: 2025-01-16T18:42:57+00:00 draft: false images: [] weight: 035 +contentType: "how-to-guide" --- diff --git a/content/chainguard/migration/compatibility/alpine-compatibility.md b/content/chainguard/migration/compatibility/alpine-compatibility.md index d27d52311a..03ae883313 100644 --- a/content/chainguard/migration/compatibility/alpine-compatibility.md +++ b/content/chainguard/migration/compatibility/alpine-compatibility.md @@ -16,6 +16,7 @@ menu: parent: "compatibility" weight: 005 toc: true +contentType: "how-to-guide" --- Chainguard Containers and Alpine base images have different binaries and scripts included in their respective `busybox` and `coreutils` packages. diff --git a/content/chainguard/migration/compatibility/debian-compatibility.md b/content/chainguard/migration/compatibility/debian-compatibility.md index 9526ab0c67..b735629fc6 100644 --- a/content/chainguard/migration/compatibility/debian-compatibility.md +++ b/content/chainguard/migration/compatibility/debian-compatibility.md @@ -17,6 +17,7 @@ menu: parent: "compatibility" weight: 010 toc: true +contentType: "how-to-guide" --- Chainguard Containers and Debian base images have different binaries and scripts included in their respective `busybox` and `coreutils` packages. diff --git a/content/chainguard/migration/compatibility/red-hat-compatibility.md b/content/chainguard/migration/compatibility/red-hat-compatibility.md index f78b160549..fc955619e1 100644 --- a/content/chainguard/migration/compatibility/red-hat-compatibility.md +++ b/content/chainguard/migration/compatibility/red-hat-compatibility.md @@ -16,6 +16,7 @@ menu: parent: "compatibility" weight: 020 toc: true +contentType: "how-to-guide" --- Chainguard Containers and Red Hat UBI base images have different binaries and scripts included in their respective `busybox` and `coreutils` packages. Note that Red Hat UBI images by default do not have a `busybox` package. diff --git a/content/chainguard/migration/compatibility/ubuntu-compatibility.md b/content/chainguard/migration/compatibility/ubuntu-compatibility.md index f81085d183..6609678dd1 100644 --- a/content/chainguard/migration/compatibility/ubuntu-compatibility.md +++ b/content/chainguard/migration/compatibility/ubuntu-compatibility.md @@ -16,6 +16,7 @@ menu: parent: "compatibility" weight: 015 toc: true +contentType: "how-to-guide" --- Chainguard Containers and Ubuntu base images have different binaries and scripts included in their respective `busybox` and `coreutils` packages. diff --git a/content/chainguard/migration/dockerfile-conversion.md b/content/chainguard/migration/dockerfile-conversion.md index 139e06350e..c5a9847d9b 100644 --- a/content/chainguard/migration/dockerfile-conversion.md +++ b/content/chainguard/migration/dockerfile-conversion.md @@ -13,6 +13,7 @@ menu: parent: "migration" weight: 030 toc: true +contentType: "how-to-guide" --- Chainguard's [Dockerfile Converter (dfc)](https://github.com/chainguard-dev/dfc) was designed to facilitate the process of porting existing Dockerfiles to use Chainguard Containers. The following platforms are currently supported: diff --git a/content/chainguard/migration/migrating-to-chainguard-images.md b/content/chainguard/migration/migrating-to-chainguard-images.md index da3b6e5a6b..903ee2f377 100644 --- a/content/chainguard/migration/migrating-to-chainguard-images.md +++ b/content/chainguard/migration/migrating-to-chainguard-images.md @@ -13,6 +13,7 @@ tags: ["Chainguard Containers"] images: [] weight: 015 toc: true +contentType: "how-to-guide" --- Chainguard Containers provide enhanced security through minimal design and built-in provenance attestation, requiring some adjustments when migrating from traditional base images. Built on the [Wolfi](/open-source/wolfi/overview/) Linux distribution, these images offer compatibility with most applications while significantly reducing attack surface and vulnerabilities. diff --git a/content/chainguard/migration/migration-checklist.md b/content/chainguard/migration/migration-checklist.md index 04799a46c5..d41be44356 100644 --- a/content/chainguard/migration/migration-checklist.md +++ b/content/chainguard/migration/migration-checklist.md @@ -10,6 +10,7 @@ draft: false images: [] weight: 020 toc: true +contentType: "how-to-guide" --- Chainguard container images are designed to be minimal and to include special features for increased security and provenance attestation. Depending on your current base image and customizations, you may need to make some adjustments when migrating your current workloads to use Chainguard Containers. This checklist provides a high-level overview of the steps you should consider when migrating to Chainguard Containers. diff --git a/content/chainguard/migration/migration-guides/_index.md b/content/chainguard/migration/migration-guides/_index.md index 6c50ff5659..9193e5c124 100644 --- a/content/chainguard/migration/migration-guides/_index.md +++ b/content/chainguard/migration/migration-guides/_index.md @@ -11,4 +11,5 @@ lastmod: 2025-01-16T18:42:57+00:00 draft: false images: [] weight: 035 ---- \ No newline at end of file +contentType: "how-to-guide" +--- diff --git a/content/chainguard/migration/migration-guides/java-images.md b/content/chainguard/migration/migration-guides/java-images.md index 85d7ac8b2e..35969e5048 100644 --- a/content/chainguard/migration/migration-guides/java-images.md +++ b/content/chainguard/migration/migration-guides/java-images.md @@ -16,6 +16,7 @@ menu: parent: "migration-guides" weight: 805 toc: true +contentType: "how-to-guide" --- {{< youtube FYOVcSv1-oY >}} diff --git a/content/chainguard/migration/migration-guides/migrating-node.md b/content/chainguard/migration/migration-guides/migrating-node.md index 24f22c7ce1..27524bf4d7 100644 --- a/content/chainguard/migration/migration-guides/migrating-node.md +++ b/content/chainguard/migration/migration-guides/migrating-node.md @@ -14,6 +14,7 @@ tags: ["Chainguard Containers", "Migration"] images: [] weight: 010 toc: true +contentType: "how-to-guide" --- Chainguard's Node.js containers offer a streamlined migration path for applications seeking enhanced security posture through minimal, distroless design. Built on [Wolfi](/open-source/wolfi/), these containers significantly reduce attack surface compared to traditional Node.js images, resulting in [fewer vulnerabilities](/chainguard/chainguard-images/vuln-comparison/node/) and smaller image sizes. Daily automated builds ensure your applications always have the latest security patches without manual intervention. diff --git a/content/chainguard/migration/migration-guides/migrating-php.md b/content/chainguard/migration/migration-guides/migrating-php.md index bab6aee096..61615218c7 100644 --- a/content/chainguard/migration/migration-guides/migrating-php.md +++ b/content/chainguard/migration/migration-guides/migrating-php.md @@ -14,6 +14,7 @@ tags: ["Chainguard Containers", "Migration"] images: [] weight: 005 toc: true +contentType: "how-to-guide" --- Chainguard's PHP containers provide enhanced security for PHP applications through minimal, purpose-built images that significantly reduce attack surface. Built on [Wolfi](/open-source/wolfi/), these containers achieve [dramatically fewer vulnerabilities](/chainguard/chainguard-images/vuln-comparison/php/) compared to traditional PHP images while maintaining full compatibility with PHP workloads. Daily automated builds ensure applications receive the latest security patches without manual intervention. diff --git a/content/chainguard/migration/migration-guides/migrating-python.md b/content/chainguard/migration/migration-guides/migrating-python.md index f2944ac0eb..32240d41ea 100644 --- a/content/chainguard/migration/migration-guides/migrating-python.md +++ b/content/chainguard/migration/migration-guides/migrating-python.md @@ -14,6 +14,7 @@ tags: ["Chainguard Containers", "Migration"] images: [] weight: 020 toc: true +contentType: "how-to-guide" --- Chainguard's Python containers provide a migration path to significantly reduce vulnerabilities in Python applications while maintaining full compatibility with existing workloads. This guide explains how to migrate your containerized Python applications to benefit from Chainguard's enhanced security posture and daily updates. diff --git a/content/chainguard/migration/migration-guides/migrating_go.md b/content/chainguard/migration/migration-guides/migrating_go.md index 50fa36f772..c1663d4d8c 100644 --- a/content/chainguard/migration/migration-guides/migrating_go.md +++ b/content/chainguard/migration/migration-guides/migrating_go.md @@ -16,6 +16,7 @@ menu: parent: "migration-guides" weight: 025 toc: true +contentType: "how-to-guide" --- {{< youtube IuEOyACeJE8 >}} diff --git a/content/chainguard/migration/migration-guides/node-images.md b/content/chainguard/migration/migration-guides/node-images.md index d47db12e1b..e7f682bc0f 100644 --- a/content/chainguard/migration/migration-guides/node-images.md +++ b/content/chainguard/migration/migration-guides/node-images.md @@ -17,6 +17,7 @@ menu: parent: "migration-guides" weight: 015 toc: true +contentType: "how-to-guide" --- {{< youtube hfpVS-UP4Yw >}} diff --git a/content/chainguard/migration/migration-tips.md b/content/chainguard/migration/migration-tips.md index a28174286c..6c1cad7f29 100644 --- a/content/chainguard/migration/migration-tips.md +++ b/content/chainguard/migration/migration-tips.md @@ -13,6 +13,7 @@ menu: parent: "migration" weight: 007 toc: true +contentType: "how-to-guide" --- The process of migrating over to Chainguard Containers isn't always straightforward. To help customers become acquainted with Chainguard Containers as they go through the migration process, we've assembled this list of tips and strategies for migrating over their applications. diff --git a/content/chainguard/migration/migrations-overview.md b/content/chainguard/migration/migrations-overview.md index b225220831..1df7454c1a 100644 --- a/content/chainguard/migration/migrations-overview.md +++ b/content/chainguard/migration/migrations-overview.md @@ -16,6 +16,7 @@ menu: parent: "migration" weight: 005 toc: true +contentType: "how-to-guide" --- [Chainguard Containers](https://www.chainguard.dev/chainguard-images?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement) are a collection of container images designed for security and minimalism. Many Chainguard Containers are [distroless](/chainguard/chainguard-images/getting-started-distroless/); they contain only an open-source application and its runtime dependencies. These container images do not even contain a shell or package manager, because fewer dependencies reduce the potential attack surface of images. @@ -253,4 +254,4 @@ In addition to the Academy resources listed above, Chainguard offers a number of * [Overview of Chainguard Containers](/chainguard/chainguard-images/overview/) * [How to Use Chainguard Containers](/chainguard/chainguard-images/how-to-use-chainguard-images/) * [How to transition to secure container images with new migration guides (Blog)](https://www.chainguard.dev/unchained/how-to-transition-to-secure-container-images-with-new-migration-guides) -* [Getting Started with Distroless Containers](/chainguard/chainguard-images/getting-started-distroless/) \ No newline at end of file +* [Getting Started with Distroless Containers](/chainguard/chainguard-images/getting-started-distroless/) diff --git a/content/chainguard/migration/porting-apps-to-chainguard/index.md b/content/chainguard/migration/porting-apps-to-chainguard/index.md index 4b9f177f6b..de55193a09 100644 --- a/content/chainguard/migration/porting-apps-to-chainguard/index.md +++ b/content/chainguard/migration/porting-apps-to-chainguard/index.md @@ -16,6 +16,7 @@ menu: parent: "concepts" weight: 010 toc: true +contentType: "how-to-guide" --- ### Porting Key Points diff --git a/content/compliance/_index.md b/content/compliance/_index.md index 81927ca025..e7adbd2999 100644 --- a/content/compliance/_index.md +++ b/content/compliance/_index.md @@ -9,5 +9,6 @@ aliases: - /software-security/compliance/ images: [] weight: 003 +contentType: "conceptual" --- diff --git a/content/compliance/cis-benchmarks.md b/content/compliance/cis-benchmarks.md index 3b64afe448..738f66cc8b 100644 --- a/content/compliance/cis-benchmarks.md +++ b/content/compliance/cis-benchmarks.md @@ -16,6 +16,7 @@ menu: parent: "compliance" weight: 025 toc: true +contentType: "conceptual" --- The [Center for Internet Security](https://www.cisecurity.org/) (CIS) is a nonprofit organization dedicated to enhancing the cybersecurity posture of organizations worldwide. Founded in 2000, CIS aims to develop best practices and guidelines that help organizations protect themselves against cyber threats. diff --git a/content/compliance/cmmc-2/_index.md b/content/compliance/cmmc-2/_index.md index 5166d1d140..5d1b6b1238 100644 --- a/content/compliance/cmmc-2/_index.md +++ b/content/compliance/cmmc-2/_index.md @@ -10,4 +10,5 @@ aliases: - /software-security/compliance/cmmc-2/ images: [] weight: 010 ---- \ No newline at end of file +contentType: "conceptual" +--- diff --git a/content/compliance/cmmc-2/cmmc-2-levels/index.md b/content/compliance/cmmc-2/cmmc-2-levels/index.md index 703e00767f..e80f9acb89 100644 --- a/content/compliance/cmmc-2/cmmc-2-levels/index.md +++ b/content/compliance/cmmc-2/cmmc-2-levels/index.md @@ -16,6 +16,7 @@ menu: parent: "cmmc-2" weight: 002 toc: true +contentType: "conceptual" --- The **Cybersecurity Maturity Model Certification (CMMC) 2.0** integrates various cybersecurity standards and best practices into a unified model that encompasses three maturity levels. Each level builds upon the previous one, with increasing rigor in cybersecurity practices and processes. In this article, we’ll provide an overview of the three levels of maturity and example practices that are representative of their requirements. @@ -79,4 +80,4 @@ To learn more about the specific required practices of CMMC 2.0, continue to the - [Overview of CMMC 2.0 Practice/Control Groups](/compliance/cmmc-2/cmmc-practices/) - [How Chainguard Can Help With CMMC 2.0](/compliance/cmmc-2/cmmc-chainguard/) -**[Get started with Chainguard FIPS Images today!](https://images.chainguard.dev/?category=fips?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement)** \ No newline at end of file +**[Get started with Chainguard FIPS Images today!](https://images.chainguard.dev/?category=fips?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement)** diff --git a/content/compliance/cmmc-2/cmmc-chainguard.md b/content/compliance/cmmc-2/cmmc-chainguard.md index 673100b92b..598da388f0 100644 --- a/content/compliance/cmmc-2/cmmc-chainguard.md +++ b/content/compliance/cmmc-2/cmmc-chainguard.md @@ -16,6 +16,7 @@ menu: parent: "cmmc-2" weight: 005 toc: true +contentType: "conceptual" --- Achieving Cybersecurity Maturity Model Certification (CMMC) 2.0 Level 2 or Level 3 certification can be a complex and resource-intensive process, particularly for organizations managing containerized environments and addressing vulnerabilities. Chainguard simplifies this journey by offering specialized solutions that drastically reduce the time and effort needed to meet compliance requirements. Our FIPS-compliant [Federal Information Processing Standard](/chainguard/chainguard-images/working-with-images/fips-images/) images, combined with detailed SBOM (Software Bill of Materials) and STIG-hardened (Security Technical Implementation Guide) configurations, provide a strong foundation for meeting the requirements of CMMC 2.0. @@ -47,4 +48,4 @@ By leveraging Chainguard’s resources, organizations can accelerate their path - (Current article) How Chainguard Can Help With CMMC 2.0 -**[Get started with FIPS Chainguard Containers today!](https://images.chainguard.dev/?category=fips?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement)** \ No newline at end of file +**[Get started with FIPS Chainguard Containers today!](https://images.chainguard.dev/?category=fips?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement)** diff --git a/content/compliance/cmmc-2/cmmc-practices.md b/content/compliance/cmmc-2/cmmc-practices.md index fd99edd634..87a1255693 100644 --- a/content/compliance/cmmc-2/cmmc-practices.md +++ b/content/compliance/cmmc-2/cmmc-practices.md @@ -16,6 +16,7 @@ menu: parent: "cmmc-2" weight: 003 toc: true +contentType: "conceptual" --- Cybersecurity Maturity Model Certification (CMMC) 2.0 requires a progressive set of practices. Level 1 has 17 practices. Level 2 includes Level 1 practices plus an additional 110 practices. Level 3 practices include Level 2 practices, plus additional practices that are still being determined. These practices are divided into 14 domains, each of which covers a different aspect of cybersecurity. diff --git a/content/compliance/cmmc-2/intro-cmmc-2.md b/content/compliance/cmmc-2/intro-cmmc-2.md index 879d23db95..4328295c9c 100644 --- a/content/compliance/cmmc-2/intro-cmmc-2.md +++ b/content/compliance/cmmc-2/intro-cmmc-2.md @@ -16,6 +16,7 @@ menu: parent: "cmmc-2" weight: 001 toc: true +contentType: "conceptual" --- CMMC 2.0, or Cybersecurity Maturity Model Certification, is a cybersecurity framework established by the U.S. Department of Defense (DoD). It aims to ensure that contractors and subcontractors within the Defense Industrial Base (DIB) comply with rigorous cybersecurity standards. CMMC 2.0 replaces the previous CMMC model with a streamlined and updated version that incorporates lessons learned and feedback from industry stakeholders. diff --git a/content/compliance/pci-dss-4/_index.md b/content/compliance/pci-dss-4/_index.md index f87d6326e4..33b00e9e50 100644 --- a/content/compliance/pci-dss-4/_index.md +++ b/content/compliance/pci-dss-4/_index.md @@ -10,4 +10,5 @@ aliases: - /software-security/compliance/pci-dss-4/ images: [] weight: 005 ---- \ No newline at end of file +contentType: "conceptual" +--- diff --git a/content/compliance/pci-dss-4/intro-pci-dss-4.md b/content/compliance/pci-dss-4/intro-pci-dss-4.md index 930b0ac929..100490d879 100644 --- a/content/compliance/pci-dss-4/intro-pci-dss-4.md +++ b/content/compliance/pci-dss-4/intro-pci-dss-4.md @@ -16,6 +16,7 @@ menu: parent: "pci-dss-4" weight: 001 toc: true +contentType: "conceptual" --- PCI DSS 4.0, or Payment Card Industry Data Security Standard, is a global standard in the payments industry that includes a set of foundational technical and operational requirements surrounding the protection of payment data. Its goal is to ensure the security of information involved when payment cards are used and while those payments are processed. PCI DSS 4.0 replaces the earlier PCI DSS 3.2.1, which was retired in March 2024. diff --git a/content/compliance/pci-dss-4/pci-dss-chainguard.md b/content/compliance/pci-dss-4/pci-dss-chainguard.md index edbde9b846..4f76c15f04 100644 --- a/content/compliance/pci-dss-4/pci-dss-chainguard.md +++ b/content/compliance/pci-dss-4/pci-dss-chainguard.md @@ -16,6 +16,7 @@ menu: parent: "pci-dss-4" weight: 005 toc: true +contentType: "conceptual" --- Compliance with PCI DSS 4.0, or Payment Card Industry Data Security Standard, requires adherence to strong security standards. Rigorous requirements must be met in order to secure your networks, systems, storage, and access according to the guidelines. @@ -57,4 +58,4 @@ Chainguard Containers are carefully engineered to contain low-to-no CVEs. Organi - (Current article) How Chainguard Can Help With CMMC 2.0 -**[Get started with FIPS Chainguard Containers today!](https://images.chainguard.dev/?category=fips?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement)** \ No newline at end of file +**[Get started with FIPS Chainguard Containers today!](https://images.chainguard.dev/?category=fips?utm_source=cg-academy&utm_medium=referral&utm_campaign=dev-enablement)** diff --git a/content/compliance/pci-dss-4/pci-dss-practices.md b/content/compliance/pci-dss-4/pci-dss-practices.md index ad4c3637bf..1bbde9d41e 100644 --- a/content/compliance/pci-dss-4/pci-dss-practices.md +++ b/content/compliance/pci-dss-4/pci-dss-practices.md @@ -16,6 +16,7 @@ menu: parent: "pci-dss-4" weight: 003 toc: true +contentType: "conceptual" --- PCI DSS 4.0, or Payment Card Industry Data Security Standard is intended for all entities that store, process, or transmit cardholder data and/or authentication data that could impact the security of the cardholder data environment. This includes all entities interacting with information such as the following: diff --git a/content/compliance/slsa/_index.md b/content/compliance/slsa/_index.md index 9ebd17f682..85a72db038 100644 --- a/content/compliance/slsa/_index.md +++ b/content/compliance/slsa/_index.md @@ -9,5 +9,6 @@ aliases: - /chainguard/open-source/slsa/ images: [] weight: 015 +contentType: "conceptual" --- -SLSA (pronounced “salsa”), or Supply chain Levels for Software Artifacts, is a framework to help you assess and improve the security of software you create or consume. \ No newline at end of file +SLSA (pronounced “salsa”), or Supply chain Levels for Software Artifacts, is a framework to help you assess and improve the security of software you create or consume. diff --git a/content/compliance/slsa/slsa-chainguard.md b/content/compliance/slsa/slsa-chainguard.md index 8799df2915..986f2ff745 100644 --- a/content/compliance/slsa/slsa-chainguard.md +++ b/content/compliance/slsa/slsa-chainguard.md @@ -16,6 +16,7 @@ menu: parent: "slsa" weight: 020 toc: true +contentType: "conceptual" --- SLSA (pronounced "salsa"), or Supply chain Levels for Software Artifacts, is a security framework consisting of standards and controls that prevent tampering, improve integrity, and secure packages and infrastructure. It is described in depth in [What is SLSA?](/compliance/slsa/what-is-slsa/). diff --git a/content/compliance/slsa/what-is-slsa.md b/content/compliance/slsa/what-is-slsa.md index b3c894190c..a2ba43644c 100644 --- a/content/compliance/slsa/what-is-slsa.md +++ b/content/compliance/slsa/what-is-slsa.md @@ -16,6 +16,7 @@ menu: parent: "slsa" weight: 010 toc: true +contentType: "conceptual" --- SLSA (pronounced “salsa”), or Supply chain Levels for Software Artifacts, is a security framework consisting of standards and controls that prevent tampering, improve integrity, and secure packages and infrastructure. While cyberattacks like [SolarWinds](/software-security/glossary/#solarwinds-hack) and [Codecov](https://www.reuters.com/technology/codecov-hackers-breached-hundreds-restricted-customer-sites-sources-2021-04-19/) have demonstrated the importance of protecting software from tampering and malicious compromise, the complexity of the software development lifecycle can leave many feeling unable to adequately understand or respond to these specific security issues. diff --git a/content/contributors/ariadne-conill/_index.md b/content/contributors/ariadne-conill/_index.md index 8c3d1ab7df..c4ed460a3e 100644 --- a/content/contributors/ariadne-conill/_index.md +++ b/content/contributors/ariadne-conill/_index.md @@ -5,8 +5,9 @@ date: 2020-10-06T08:50:45+00:00 lastmod: 2020-10-06T08:50:45+00:00 draft: false images: [] +contentType: "conceptual" --- [Website](https://ariadne.space/) | [Twitter](https://twitter.com/ariadneconill) -Alpine Linux TSC member (security), Software engineer at Chainguard \ No newline at end of file +Alpine Linux TSC member (security), Software engineer at Chainguard diff --git a/content/contributors/eddie-zaneski/_index.md b/content/contributors/eddie-zaneski/_index.md index 1ca08d068a..9cd2d1cdb1 100644 --- a/content/contributors/eddie-zaneski/_index.md +++ b/content/contributors/eddie-zaneski/_index.md @@ -5,8 +5,9 @@ date: 2020-10-06T08:50:45+00:00 lastmod: 2020-10-06T08:50:45+00:00 draft: false images: [] +contentType: "conceptual" --- [GitHub](https://github.com/eddiezane) | [Twitter](https://twitter.com/eddiezane) -DevRel + OSS at Chainguard \ No newline at end of file +DevRel + OSS at Chainguard diff --git a/content/contributors/erika-heidi/_index.md b/content/contributors/erika-heidi/_index.md index 35f08da16a..b84c00890f 100644 --- a/content/contributors/erika-heidi/_index.md +++ b/content/contributors/erika-heidi/_index.md @@ -5,8 +5,9 @@ date: 2020-10-06T08:50:45+00:00 lastmod: 2020-10-06T08:50:45+00:00 draft: false images: [] +contentType: "conceptual" --- [Website](https://eheidi.dev/) | [Twitter](https://twitter.com/erikaheidi) -Developer Experience Engineer at Chainguard \ No newline at end of file +Developer Experience Engineer at Chainguard diff --git a/content/contributors/john-speed-meyers/_index.md b/content/contributors/john-speed-meyers/_index.md index 917af54020..623ca3db5d 100644 --- a/content/contributors/john-speed-meyers/_index.md +++ b/content/contributors/john-speed-meyers/_index.md @@ -5,6 +5,7 @@ date: 2020-10-06T08:50:45+00:00 lastmod: 2020-10-06T08:50:45+00:00 draft: false images: [] +contentType: "conceptual" --- -Security Data Scientist at Chainguard \ No newline at end of file +Security Data Scientist at Chainguard diff --git a/content/developer-resources.md b/content/developer-resources.md index 07a19bfe70..756dcfa44b 100644 --- a/content/developer-resources.md +++ b/content/developer-resources.md @@ -9,6 +9,7 @@ draft: false images: [] weight: 50 toc: false +contentType: "conceptual" --- ## AI-Ready Documentation Bundle @@ -167,4 +168,4 @@ The bundle is regenerated periodically. Check the timestamp in the downloaded fi If you have questions or need assistance: - Visit [Chainguard Support](https://support.chainguard.dev?utm=docs) - Join our [Community Slack](https://go.chainguard.dev/slack?utm=docs) -- Review our [Documentation](https://edu.chainguard.dev) \ No newline at end of file +- Review our [Documentation](https://edu.chainguard.dev) diff --git a/content/guidelines.md b/content/guidelines.md index 991446514b..dedcc49d24 100644 --- a/content/guidelines.md +++ b/content/guidelines.md @@ -8,6 +8,7 @@ draft: false images: [] weight: 50 toc: false +contentType: "conceptual" --- This space is for developers, engineers, and security pros who are building and learning together to secure the software supply chain—from distroless containers to CVE-free deployments. diff --git a/content/open-source/_index.md b/content/open-source/_index.md index 4fa840fc35..810ac0658f 100644 --- a/content/open-source/_index.md +++ b/content/open-source/_index.md @@ -6,5 +6,6 @@ lastmod: 2020-10-06T08:48:23+00:00 draft: false images: [] weight: 2 +contentType: "conceptual" --- diff --git a/content/open-source/build-tools/_index.md b/content/open-source/build-tools/_index.md index 35b2e0a335..ba42f33947 100644 --- a/content/open-source/build-tools/_index.md +++ b/content/open-source/build-tools/_index.md @@ -7,6 +7,7 @@ lastmod: 2024-05-02T08:49:15+00:00 draft: false images: [] weight: 20 +contentType: "how-to-guide" --- -The open source tools that were developed for the [Wolfi](/open-source/wolfi/) operating system. \ No newline at end of file +The open source tools that were developed for the [Wolfi](/open-source/wolfi/) operating system. diff --git a/content/open-source/build-tools/apko/_index.md b/content/open-source/build-tools/apko/_index.md index e0ce0b3268..506c20f7bd 100644 --- a/content/open-source/build-tools/apko/_index.md +++ b/content/open-source/build-tools/apko/_index.md @@ -9,4 +9,5 @@ date: 2022-08-08T08:49:15+00:00 lastmod: 2024-05-02T08:49:15+00:00 draft: false images: [] +contentType: "how-to-guide" --- diff --git a/content/open-source/build-tools/apko/bazel-rules.md b/content/open-source/build-tools/apko/bazel-rules.md index 628bef60d3..afe4538b1f 100644 --- a/content/open-source/build-tools/apko/bazel-rules.md +++ b/content/open-source/build-tools/apko/bazel-rules.md @@ -16,6 +16,7 @@ menu: parent: "apko" weight: 900 toc: true +contentType: "how-to-guide" --- `rules_apko` is an open source plugin for Bazel that makes it possible to build secure, minimal Wolfi-based container images using the popular Bazel build system. This wraps the [apko](https://github.com/chainguard-dev/apko) tool for use under Bazel. diff --git a/content/open-source/build-tools/apko/faq.md b/content/open-source/build-tools/apko/faq.md index bd0bfd9316..2d39956c59 100644 --- a/content/open-source/build-tools/apko/faq.md +++ b/content/open-source/build-tools/apko/faq.md @@ -15,6 +15,7 @@ menu: parent: "apko" weight: 50 toc: true +contentType: "conceptual" --- ## Do I need to understand apko to use Chainguard Containers? diff --git a/content/open-source/build-tools/apko/getting-started-with-apko.md b/content/open-source/build-tools/apko/getting-started-with-apko.md index 6d3ea50165..a083e6a5f6 100644 --- a/content/open-source/build-tools/apko/getting-started-with-apko.md +++ b/content/open-source/build-tools/apko/getting-started-with-apko.md @@ -15,6 +15,7 @@ menu: parent: "apko" weight: 100 toc: true +contentType: "tutorial" --- [apko](http://github.com/chainguard-dev/apko) is a command-line tool to build container images using a declarative language based on YAML. apko is so named as it uses the [apk](https://wiki.alpinelinux.org/wiki/Package_management) package format and is inspired by the [ko](https://github.com/google/ko) build tool. It is part of the open source tooling Chainguard developed to create the [Wolfi](/open-source/wolfi/) operating system which is used in [Chainguard Containers](/chainguard/chainguard-images/). diff --git a/content/open-source/build-tools/apko/overview/index.md b/content/open-source/build-tools/apko/overview/index.md index 4718419e09..e46f5da39f 100644 --- a/content/open-source/build-tools/apko/overview/index.md +++ b/content/open-source/build-tools/apko/overview/index.md @@ -14,6 +14,7 @@ menu: parent: "apko" weight: 10 toc: true +contentType: "how-to-guide" --- [apko](http://github.com/chainguard-dev/apko) is a command-line tool designed to create single-layer container images based on the [apk](https://wiki.alpinelinux.org/wiki/Package_management) package format. It was so named as it uses the apk package format and is inspired by the [ko](https://github.com/google/ko) build tool. diff --git a/content/open-source/build-tools/apko/troubleshooting.md b/content/open-source/build-tools/apko/troubleshooting.md index 244b3b1546..e748c63e6d 100644 --- a/content/open-source/build-tools/apko/troubleshooting.md +++ b/content/open-source/build-tools/apko/troubleshooting.md @@ -16,6 +16,7 @@ menu: parent: "apko" weight: 300 toc: true +contentType: "tutorial" --- ## Debug Options diff --git a/content/open-source/build-tools/melange/_index.md b/content/open-source/build-tools/melange/_index.md index e7f764de16..a2a6fdad58 100644 --- a/content/open-source/build-tools/melange/_index.md +++ b/content/open-source/build-tools/melange/_index.md @@ -9,6 +9,7 @@ date: 2020-10-06T08:49:15+00:00 lastmod: 2024-08-01T08:49:15+00:00 draft: false images: [] +contentType: "how-to-guide" --- melange is an apk builder tool that uses declarative pipelines to create apk packages. diff --git a/content/open-source/build-tools/melange/faq.md b/content/open-source/build-tools/melange/faq.md index ed4047cea2..454edb3874 100644 --- a/content/open-source/build-tools/melange/faq.md +++ b/content/open-source/build-tools/melange/faq.md @@ -15,6 +15,7 @@ menu: parent: "melange" weight: 900 toc: true +contentType: "conceptual" --- ## Do I need to understand melange to use Chainguard Containers? diff --git a/content/open-source/build-tools/melange/getting-started-with-melange.md b/content/open-source/build-tools/melange/getting-started-with-melange.md index 10cd8f7916..df54936457 100644 --- a/content/open-source/build-tools/melange/getting-started-with-melange.md +++ b/content/open-source/build-tools/melange/getting-started-with-melange.md @@ -16,6 +16,7 @@ menu: parent: "melange-tutorials" weight: 100 toc: true +contentType: "tutorial" --- [melange](https://github.com/chainguard-dev/melange) is an [apk](https://wiki.alpinelinux.org/wiki/Package_management) builder tool that uses declarative pipelines to create apk packages. From a single YAML file, users are able to generate multi-architecture apks that can be injected directly into [apko](https://github.com/chainguard-dev/apko) builds. diff --git a/content/open-source/build-tools/melange/overview/index.md b/content/open-source/build-tools/melange/overview/index.md index c0a43b7834..7869dde4a2 100644 --- a/content/open-source/build-tools/melange/overview/index.md +++ b/content/open-source/build-tools/melange/overview/index.md @@ -14,6 +14,7 @@ menu: parent: "melange" weight: 10 toc: true +contentType: "conceptual" --- [melange](https://github.com/chainguard-dev/melange) is an [apk](https://wiki.alpinelinux.org/wiki/Package_management) builder tool that uses declarative pipelines to create apk packages. It is part of the open source tooling used for [Wolfi](/open-source/wolfi/), which is the operating system used to power [Chainguard Containers](/chainguard/chainguard-images/). diff --git a/content/open-source/build-tools/melange/troubleshooting.md b/content/open-source/build-tools/melange/troubleshooting.md index c5119df1b2..caccaa019b 100644 --- a/content/open-source/build-tools/melange/troubleshooting.md +++ b/content/open-source/build-tools/melange/troubleshooting.md @@ -17,6 +17,7 @@ docs: parent: "melange" weight: 200 toc: true +contentType: "how-to-guide" --- ## Debug Options diff --git a/content/open-source/oci/_index.md b/content/open-source/oci/_index.md index 188fd61417..a28f9ae6f6 100644 --- a/content/open-source/oci/_index.md +++ b/content/open-source/oci/_index.md @@ -7,6 +7,7 @@ date: 2020-10-06T08:49:15+00:00 lastmod: 2020-10-06T08:49:15+00:00 draft: false images: [] +contentType: "conceptual" --- The Open Container Initiative (OCI) is a Linux Foundation project dedicated to managing specifications and projects related to the storage, distribution, and execution of container images. diff --git a/content/open-source/oci/what-are-oci-artifacts.md b/content/open-source/oci/what-are-oci-artifacts.md index a73b2c4c80..e16537d436 100644 --- a/content/open-source/oci/what-are-oci-artifacts.md +++ b/content/open-source/oci/what-are-oci-artifacts.md @@ -12,6 +12,7 @@ menu: parent: "oci" weight: 150 toc: true +contentType: "conceptual" --- OCI artifacts are a way of using OCI registries, or container registries that are compliant with specifications set by the [Open Container Initiative](/open-source/oci/what-is-the-oci/), to store arbitrary files. They are useful to understand given their growing importance for software supply chain security and their general utility for container engineering. However, community usage of OCI artifacts is still actively evolving and differing opinions and understandings of their purpose can lead to confusion. In this guide, you will learn the difference between OCI "artifacts" and "Artifacts," their utility for software supply chain security, and some important considerations when using them. diff --git a/content/open-source/oci/what-is-the-oci.md b/content/open-source/oci/what-is-the-oci.md index 55df6bac10..ec1aa2d391 100644 --- a/content/open-source/oci/what-is-the-oci.md +++ b/content/open-source/oci/what-is-the-oci.md @@ -13,6 +13,7 @@ menu: parent: "oci" weight: 100 toc: true +contentType: "conceptual" --- The [Open Container Initiative](https://opencontainers.org/) (OCI) is a Linux Foundation project dedicated to managing specifications and projects related to the storage, distribution, and execution of container images. The OCI was formed in 2015 when developers recognized that the quickly growing container industry needed standards to ensure the portability of containers across systems and platforms. As one of the most popular container developers, Docker was a key partner in the formation of the OCI and donated its specifications and associated code for OCI image formats and runtime specifications. Today, the OCI manages three specifications (the Image Specification, the Runtime Specification, and the Distribution Specification), which are evolving according to community participation and industry development. diff --git a/content/open-source/sbom/_index.md b/content/open-source/sbom/_index.md index 90deb965ec..d217a0eb71 100644 --- a/content/open-source/sbom/_index.md +++ b/content/open-source/sbom/_index.md @@ -12,6 +12,7 @@ menu: parent: "sbom" images: [] toc: true +contentType: "conceptual" --- -A software bill of materials, or an SBOM (pronounced s-bomb), is a key resource for enabling visibility into the different software components of a codebase. \ No newline at end of file +A software bill of materials, or an SBOM (pronounced s-bomb), is a key resource for enabling visibility into the different software components of a codebase. diff --git a/content/open-source/sbom/getting-started-openvex-vexctl.md b/content/open-source/sbom/getting-started-openvex-vexctl.md index bd96e42574..6cad4c3541 100644 --- a/content/open-source/sbom/getting-started-openvex-vexctl.md +++ b/content/open-source/sbom/getting-started-openvex-vexctl.md @@ -14,6 +14,7 @@ menu: parent: "sbom" weight: 10 toc: true +contentType: "tutorial" --- The `vexctl` CLI is a tool to make VEX work. As part of the open source [OpenVex](/open-source/sbom/what-is-openvex/) project, `vexctl` enables you to create, apply, and attest VEX (Vulnerability Exploitability eXchange) data in order to filter out false positive security alerts. diff --git a/content/open-source/sbom/sboms-and-attestations.md b/content/open-source/sbom/sboms-and-attestations.md index 560ced02b3..b129cfaa45 100644 --- a/content/open-source/sbom/sboms-and-attestations.md +++ b/content/open-source/sbom/sboms-and-attestations.md @@ -17,6 +17,7 @@ menu: parent: "sbom" weight: 030 toc: true +contentType: "conceptual" --- One of the first steps to improving your software supply chain security is to establish a process for creating quality *Software Bills of Materials* (SBOMs). An [SBOM](/open-source/sbom/) is a formal record that contains the details and supply chain relationships (such as dependencies) of the components used in building software. diff --git a/content/open-source/sbom/what-is-an-sbom.md b/content/open-source/sbom/what-is-an-sbom.md index cdf60bfe29..34fb6cbba7 100644 --- a/content/open-source/sbom/what-is-an-sbom.md +++ b/content/open-source/sbom/what-is-an-sbom.md @@ -15,6 +15,7 @@ menu: parent: "sbom" weight: 5 toc: true +contentType: "conceptual" --- Modern software applications contain hundreds to thousands of open source and third-party components, creating significant security challenges that SBOMs help address - which is why Chainguard includes comprehensive SBOMs with every container image. Without structured visibility into these components, organizations struggle to identify and respond to vulnerabilities, even when patches are available. This lack of transparency leaves systems vulnerable to exploitation, making SBOMs essential for maintaining secure software supply chains. diff --git a/content/open-source/sbom/what-is-openvex.md b/content/open-source/sbom/what-is-openvex.md index a1dfc67d01..453fce626c 100644 --- a/content/open-source/sbom/what-is-openvex.md +++ b/content/open-source/sbom/what-is-openvex.md @@ -14,6 +14,7 @@ menu: parent: "sbom" weight: 15 toc: true +contentType: "conceptual" --- @@ -166,4 +167,4 @@ To learn more about VEX, check out related resources on Chainguard’s blog: * [Understanding the Promise of VEX](https://www.chainguard.dev/unchained/understanding-the-promise-of-vex) * [What is VEX and Why Should I Care?](https://www.endorlabs.com/blog/what-is-vex-and-why-should-i-care) -You can also read more about VEX use cases in [this report published by the Cybersecurity and Infrastructure Security Agency](https://www.cisa.gov/sites/default/files/publications/VEX_Use_Cases_Aprill2022.pdf). \ No newline at end of file +You can also read more about VEX use cases in [this report published by the Cybersecurity and Infrastructure Security Agency](https://www.cisa.gov/sites/default/files/publications/VEX_Use_Cases_Aprill2022.pdf). diff --git a/content/open-source/sbom/what-makes-a-good-sbom.md b/content/open-source/sbom/what-makes-a-good-sbom.md index 664e3b6e2b..36488e4862 100644 --- a/content/open-source/sbom/what-makes-a-good-sbom.md +++ b/content/open-source/sbom/what-makes-a-good-sbom.md @@ -14,6 +14,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- A [software bill of materials](/software-security/glossary/#sbom), or an SBOM (pronounced s-bomb), is a formal record of the components contained in a piece of software. It is analogous to an ingredients list for a recipe. And it has become recognized as one of the key building blocks of software supply chain security. Proponents rightfully point out that organizations can't secure their software if they don't know what's inside their software. @@ -46,4 +47,4 @@ The tools for measuring SBOM quality — like the overall concept of SBOM qualit ## Learn More -Check out Chainguard's blog post on ["Are SBOMs Any Good?"](https://www.chainguard.dev/unchained/are-sboms-any-good-preliminary-measurement-of-the-quality-of-open-source-project-sboms) to see an application of these SBOM quality tools to a dataset of open source project SBOMs. You can also learn about the complications for SBOM quality created by ["software dark matter."](https://www.chainguard.dev/unchained/software-dark-matter-is-the-enemy-of-software-transparency). \ No newline at end of file +Check out Chainguard's blog post on ["Are SBOMs Any Good?"](https://www.chainguard.dev/unchained/are-sboms-any-good-preliminary-measurement-of-the-quality-of-open-source-project-sboms) to see an application of these SBOM quality tools to a dataset of open source project SBOMs. You can also learn about the complications for SBOM quality created by ["software dark matter."](https://www.chainguard.dev/unchained/software-dark-matter-is-the-enemy-of-software-transparency). diff --git a/content/open-source/sigstore/_index.md b/content/open-source/sigstore/_index.md index edfd3510e4..baa4424d22 100644 --- a/content/open-source/sigstore/_index.md +++ b/content/open-source/sigstore/_index.md @@ -49,4 +49,5 @@ tutorials: [ ] +contentType: "conceptual" --- diff --git a/content/open-source/sigstore/cosign/_index.md b/content/open-source/sigstore/cosign/_index.md index 4dd22407ee..361dd757e6 100644 --- a/content/open-source/sigstore/cosign/_index.md +++ b/content/open-source/sigstore/cosign/_index.md @@ -9,6 +9,7 @@ menu: docs: parent: "sigstore" images: [] +contentType: "conceptual" --- -A Sigstore tool used to sign and verify software artifacts \ No newline at end of file +A Sigstore tool used to sign and verify software artifacts diff --git a/content/open-source/sigstore/cosign/an-introduction-to-cosign.md b/content/open-source/sigstore/cosign/an-introduction-to-cosign.md index ea34458dfc..4ad236e78a 100644 --- a/content/open-source/sigstore/cosign/an-introduction-to-cosign.md +++ b/content/open-source/sigstore/cosign/an-introduction-to-cosign.md @@ -14,6 +14,7 @@ menu: parent: "cosign" weight: 001 toc: true +contentType: "conceptual" --- _An earlier version of this material was published in the [Cosign chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@204b98f35bca48c194d1868e0356bef1/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@2f0ad9cb8f124a39ab555ac8bf1a114c) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/cosign/cosign-manual-way.md b/content/open-source/sigstore/cosign/cosign-manual-way.md index d0562c83a0..1363525c7e 100644 --- a/content/open-source/sigstore/cosign/cosign-manual-way.md +++ b/content/open-source/sigstore/cosign/cosign-manual-way.md @@ -14,6 +14,7 @@ menu: parent: "cosign" weight: 007 toc: true +contentType: "conceptual" --- When I first used [Cosign](https://github.com/sigstore/cosign), the software artifact signing CLI from the [Sigstore](https://www.sigstore.dev/) project, I was amazed at how painless signing and verifying could be. diff --git a/content/open-source/sigstore/cosign/how-to-install-cosign.md b/content/open-source/sigstore/cosign/how-to-install-cosign.md index 07d7fcdb5b..4f1bbd5821 100644 --- a/content/open-source/sigstore/cosign/how-to-install-cosign.md +++ b/content/open-source/sigstore/cosign/how-to-install-cosign.md @@ -14,6 +14,7 @@ menu: parent: "cosign" weight: 002 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Cosign chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@204b98f35bca48c194d1868e0356bef1/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@2f0ad9cb8f124a39ab555ac8bf1a114c) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/cosign/how-to-sign-a-container-with-cosign.md b/content/open-source/sigstore/cosign/how-to-sign-a-container-with-cosign.md index 84ddefd19c..02a73e060e 100644 --- a/content/open-source/sigstore/cosign/how-to-sign-a-container-with-cosign.md +++ b/content/open-source/sigstore/cosign/how-to-sign-a-container-with-cosign.md @@ -14,6 +14,7 @@ menu: parent: "cosign" weight: 003 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Cosign chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@204b98f35bca48c194d1868e0356bef1/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@2f0ad9cb8f124a39ab555ac8bf1a114c) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/cosign/how-to-sign-an-sbom-with-cosign.md b/content/open-source/sigstore/cosign/how-to-sign-an-sbom-with-cosign.md index 8567b00727..839cb334f9 100644 --- a/content/open-source/sigstore/cosign/how-to-sign-an-sbom-with-cosign.md +++ b/content/open-source/sigstore/cosign/how-to-sign-an-sbom-with-cosign.md @@ -14,6 +14,7 @@ menu: parent: "cosign" weight: 005 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Cosign chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@204b98f35bca48c194d1868e0356bef1/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@2f0ad9cb8f124a39ab555ac8bf1a114c) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/cosign/how-to-sign-blobs-with-cosign.md b/content/open-source/sigstore/cosign/how-to-sign-blobs-with-cosign.md index 8dc571d46f..cd9ec54908 100644 --- a/content/open-source/sigstore/cosign/how-to-sign-blobs-with-cosign.md +++ b/content/open-source/sigstore/cosign/how-to-sign-blobs-with-cosign.md @@ -14,6 +14,7 @@ menu: parent: "cosign" weight: 004 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Cosign chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@204b98f35bca48c194d1868e0356bef1/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@2f0ad9cb8f124a39ab555ac8bf1a114c) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/cosign/how-to-verify-file-signatures-with-cosign.md b/content/open-source/sigstore/cosign/how-to-verify-file-signatures-with-cosign.md index 477e7d0173..1cf84e9ec5 100644 --- a/content/open-source/sigstore/cosign/how-to-verify-file-signatures-with-cosign.md +++ b/content/open-source/sigstore/cosign/how-to-verify-file-signatures-with-cosign.md @@ -16,6 +16,7 @@ menu: parent: "cosign" weight: 006 toc: true +contentType: "how-to-guide" --- Cosign can be used to verify binary artifacts ("blobs") using provided signatures as long as they are published to an OCI registry. In this tutorial, we’ll verify a binary artifact — in this case, a release of [`apko`](/open-source/apko/overview/), a command-line tool for building container images using a declarative language based on YAML. The methods in this tutorial apply to any blob file Cosign has signed with a keyless signature. diff --git a/content/open-source/sigstore/fulcio/_index.md b/content/open-source/sigstore/fulcio/_index.md index e88ad13435..34c95a16f6 100644 --- a/content/open-source/sigstore/fulcio/_index.md +++ b/content/open-source/sigstore/fulcio/_index.md @@ -9,6 +9,7 @@ menu: docs: parent: "rekor" images: [] +contentType: "conceptual" --- -A new kind of root certificate authority for code signing \ No newline at end of file +A new kind of root certificate authority for code signing diff --git a/content/open-source/sigstore/fulcio/an-introduction-to-fulcio/index.md b/content/open-source/sigstore/fulcio/an-introduction-to-fulcio/index.md index 0bbcbb1a2d..2180fe5650 100644 --- a/content/open-source/sigstore/fulcio/an-introduction-to-fulcio/index.md +++ b/content/open-source/sigstore/fulcio/an-introduction-to-fulcio/index.md @@ -15,6 +15,7 @@ menu: identifier: "Fulcio Introduction" weight: 230 toc: true +contentType: "conceptual" --- _An earlier version of this material was published in the [Fulcio chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@2fbe6328019c4b1fbf934bd3bfb7e308/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@1f71fcbe8219471fb82e25731b18be11) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/fulcio/how-to-generate-a-fulcio-certificate.md b/content/open-source/sigstore/fulcio/how-to-generate-a-fulcio-certificate.md index 890e74d161..a4c3be5811 100644 --- a/content/open-source/sigstore/fulcio/how-to-generate-a-fulcio-certificate.md +++ b/content/open-source/sigstore/fulcio/how-to-generate-a-fulcio-certificate.md @@ -13,6 +13,7 @@ menu: parent: "fulcio" weight: 630 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Fulcio chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@2fbe6328019c4b1fbf934bd3bfb7e308/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@1f71fcbe8219471fb82e25731b18be11) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/fulcio/how-to-inspect-and-verify-fulcio-certificates.md b/content/open-source/sigstore/fulcio/how-to-inspect-and-verify-fulcio-certificates.md index 69bd47b982..a7c332d2e5 100644 --- a/content/open-source/sigstore/fulcio/how-to-inspect-and-verify-fulcio-certificates.md +++ b/content/open-source/sigstore/fulcio/how-to-inspect-and-verify-fulcio-certificates.md @@ -13,6 +13,7 @@ menu: parent: "fulcio" weight: 630 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Fulcio chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@2fbe6328019c4b1fbf934bd3bfb7e308/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@1f71fcbe8219471fb82e25731b18be11) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/how-to-keyless-sign-a-container-with-sigstore/index.md b/content/open-source/sigstore/how-to-keyless-sign-a-container-with-sigstore/index.md index b2f55f2be5..68f17645d8 100644 --- a/content/open-source/sigstore/how-to-keyless-sign-a-container-with-sigstore/index.md +++ b/content/open-source/sigstore/how-to-keyless-sign-a-container-with-sigstore/index.md @@ -14,6 +14,7 @@ menu: parent: "sigstore" weight: 630 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [lab in chapter 5](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@5fb8482a3b764ce0903e2c424842d32f/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@2e3388391d6040f5beb5bacbf19f96f5) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/policy-controller/_index.md b/content/open-source/sigstore/policy-controller/_index.md index ea06d7b526..44c8fe5d75 100644 --- a/content/open-source/sigstore/policy-controller/_index.md +++ b/content/open-source/sigstore/policy-controller/_index.md @@ -9,6 +9,7 @@ menu: docs: parent: "sigstore" images: [] +contentType: "conceptual" --- -A Kubernetes admission controller used to validate signatures and attestations on container images as well as enforce policies using CUE or Rego languages. \ No newline at end of file +A Kubernetes admission controller used to validate signatures and attestations on container images as well as enforce policies using CUE or Rego languages. diff --git a/content/open-source/sigstore/policy-controller/how-to-install-policy-controller.md b/content/open-source/sigstore/policy-controller/how-to-install-policy-controller.md index 002db4bfb6..f34cf5262c 100644 --- a/content/open-source/sigstore/policy-controller/how-to-install-policy-controller.md +++ b/content/open-source/sigstore/policy-controller/how-to-install-policy-controller.md @@ -17,6 +17,7 @@ menu: parent: "policy-controller" weight: 001 toc: true +contentType: "how-to-guide" --- The [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) is a Kubernetes [admission controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) that can verify image signatures and policies. You can define policies using the [CUE](https://cuelang.org/) or [Rego](https://www.openpolicyagent.org/docs/latest/policy-language/) policy languages. diff --git a/content/open-source/sigstore/policy-controller/policies/_index.md b/content/open-source/sigstore/policy-controller/policies/_index.md index 9bd029a312..97ca686ed4 100644 --- a/content/open-source/sigstore/policy-controller/policies/_index.md +++ b/content/open-source/sigstore/policy-controller/policies/_index.md @@ -7,6 +7,7 @@ lastmod: 2024-05-10T08:49:15+00:00 draft: false images: [] weight: 500 +contentType: "how-to-guide" --- -Documentation and resources relating to policies in Sigstore Policy Controller. \ No newline at end of file +Documentation and resources relating to policies in Sigstore Policy Controller. diff --git a/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-policy-examples.md b/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-policy-examples.md index 60bb22dae5..129c06fcac 100644 --- a/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-policy-examples.md +++ b/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-policy-examples.md @@ -14,6 +14,7 @@ menu: parent: "policies" weight: 075 toc: true +contentType: "how-to-guide" --- The [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) allows users to create their own security policies that they can be enforced on Kubernetes clusters. Here are a few example policies to help you get started. diff --git a/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-rego-policies.md b/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-rego-policies.md index 0c231dbfc4..1a2b35f857 100644 --- a/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-rego-policies.md +++ b/content/open-source/sigstore/policy-controller/policies/chainguard-enforce-rego-policies.md @@ -13,6 +13,7 @@ menu: parent: "policies" weight: 010 toc: true +contentType: "how-to-guide" --- The [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) supports the [Rego Policy Language](https://www.openpolicyagent.org/docs/latest/policy-language/), which is a declarative policy language that is used to evaluate structured input data such as Kubernetes manifests and JSON documents. This feature enables users to apply policies that can evaluate Kubernetes admission requests and object metadata to make comprehensive decisions about the workloads that are admitted to their clusters. Rego support also enables users to enhance existing cloud-native policies by adding additional software supply chain security checks. diff --git a/content/open-source/sigstore/policy-controller/policies/critical-cve-policy.md b/content/open-source/sigstore/policy-controller/policies/critical-cve-policy.md index 170d856fcd..c07e4c32cb 100644 --- a/content/open-source/sigstore/policy-controller/policies/critical-cve-policy.md +++ b/content/open-source/sigstore/policy-controller/policies/critical-cve-policy.md @@ -16,6 +16,7 @@ menu: parent: "policies" weight: 010 toc: true +contentType: "how-to-guide" --- While Common Vulnerabilities and Exposures (CVEs) are undesirable at any time, the software security standards of certain industries strictly regulate the allowance of _high_ or _critical_ CVEs. For example, in the payment industry, the [PCI Security Standards Council](https://www.pcisecuritystandards.org/) requires that all vulnerabilities with a Common Vulnerability Scoring System (CVSS) score higher than 4 are addressed. diff --git a/content/open-source/sigstore/policy-controller/policies/disallowing-non-default-capabilities-with-policy-controller.md b/content/open-source/sigstore/policy-controller/policies/disallowing-non-default-capabilities-with-policy-controller.md index e19796c0a8..9c2f4f7c14 100644 --- a/content/open-source/sigstore/policy-controller/policies/disallowing-non-default-capabilities-with-policy-controller.md +++ b/content/open-source/sigstore/policy-controller/policies/disallowing-non-default-capabilities-with-policy-controller.md @@ -14,6 +14,7 @@ menu: parent: "policy-controller" weight: 006 toc: true +contentType: "how-to-guide" --- This guide demonstrates how to use the [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) to prevent running containers with extra capabilities. You will create a `ClusterImagePolicy` that uses the [CUE](https://cuelang.org/) language to examine a pod spec, and only allow admission into a cluster if the pod is running with one or many [Linux capabilities](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container) from defined set of safe capabilities flags. diff --git a/content/open-source/sigstore/policy-controller/policies/disallowing-privileged-containers-with-policy-controller.md b/content/open-source/sigstore/policy-controller/policies/disallowing-privileged-containers-with-policy-controller.md index dc20abf337..e03691437b 100644 --- a/content/open-source/sigstore/policy-controller/policies/disallowing-privileged-containers-with-policy-controller.md +++ b/content/open-source/sigstore/policy-controller/policies/disallowing-privileged-containers-with-policy-controller.md @@ -14,6 +14,7 @@ menu: parent: "policy-controller" weight: 006 toc: true +contentType: "how-to-guide" --- This guide demonstrates how to use the [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) to prevent running containers with elevated privileges. You will create a `ClusterImagePolicy` that uses the [CUE](https://cuelang.org/) language to examine a pod spec, and only allow admission into a cluster if the pod is running without the `privileged: true` setting. diff --git a/content/open-source/sigstore/policy-controller/policies/disallowing-run-as-root-user-with-policy-controller.md b/content/open-source/sigstore/policy-controller/policies/disallowing-run-as-root-user-with-policy-controller.md index e75ce89741..0b4c1879e2 100644 --- a/content/open-source/sigstore/policy-controller/policies/disallowing-run-as-root-user-with-policy-controller.md +++ b/content/open-source/sigstore/policy-controller/policies/disallowing-run-as-root-user-with-policy-controller.md @@ -14,6 +14,7 @@ menu: parent: "policy-controller" weight: 006 toc: true +contentType: "how-to-guide" --- This guide demonstrates how to use the [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) to prevent running containers as the `root` user in a Kubernetes cluster. You will create a `ClusterImagePolicy` that uses the [CUE](https://cuelang.org/) language to examine a pod spec, and only allow admission into a cluster if the pod is running as a non-root user. diff --git a/content/open-source/sigstore/policy-controller/policies/disallowing-unsafe-sysctls-with-policy-controller.md b/content/open-source/sigstore/policy-controller/policies/disallowing-unsafe-sysctls-with-policy-controller.md index edb5e5a7de..e043389c97 100644 --- a/content/open-source/sigstore/policy-controller/policies/disallowing-unsafe-sysctls-with-policy-controller.md +++ b/content/open-source/sigstore/policy-controller/policies/disallowing-unsafe-sysctls-with-policy-controller.md @@ -14,6 +14,7 @@ menu: parent: "policy-controller" weight: 006 toc: true +contentType: "how-to-guide" --- This guide demonstrates how to use the [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) to only allow pods that use `sysctls` to modify kernel behaviour to run with the [safe set](https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/#safe-and-unsafe-sysctls) of parameters. You will create a `ClusterImagePolicy` that uses the [CUE](https://cuelang.org/) language to examine a pod spec that uses sysctls, and only allow admission into a cluster if the pod is running a safe set parameters. diff --git a/content/open-source/sigstore/policy-controller/policies/enforce-sbom-attestation-with-policy-controller.md b/content/open-source/sigstore/policy-controller/policies/enforce-sbom-attestation-with-policy-controller.md index e966198e3f..b696d40d2c 100644 --- a/content/open-source/sigstore/policy-controller/policies/enforce-sbom-attestation-with-policy-controller.md +++ b/content/open-source/sigstore/policy-controller/policies/enforce-sbom-attestation-with-policy-controller.md @@ -14,6 +14,7 @@ menu: parent: "policy-controller" weight: 006 toc: true +contentType: "how-to-guide" --- This guide demonstrates how to use the [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) to verify image attestations before admitting an image into a Kubernetes cluster. In this guide, you will create a `ClusterImagePolicy` that checks the existence of a SBOM attestation attached to a container image, and then test the admission controller by running a `registry.enforce.dev/chainguard/node` image with SBOM attestations. diff --git a/content/open-source/sigstore/policy-controller/policies/maximum-image-age-policy-controller.md b/content/open-source/sigstore/policy-controller/policies/maximum-image-age-policy-controller.md index e2935cff59..73e3d7f173 100644 --- a/content/open-source/sigstore/policy-controller/policies/maximum-image-age-policy-controller.md +++ b/content/open-source/sigstore/policy-controller/policies/maximum-image-age-policy-controller.md @@ -15,6 +15,7 @@ menu: parent: "policy-controller" weight: 006 toc: true +contentType: "how-to-guide" --- This guide demonstrates how to use the [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) to verify image signatures before admitting an image into a Kubernetes cluster. In this guide, you will create a `ClusterImagePolicy` that checks the maximum age of a container image verifying that isn’t older than 30 days. For that, we’ll attempt to create two distroless images one older than 30 days and a fresh one. diff --git a/content/open-source/sigstore/policy-controller/policies/using-policy-controller-to-verify-signed-chainguard-images.md b/content/open-source/sigstore/policy-controller/policies/using-policy-controller-to-verify-signed-chainguard-images.md index 20020da448..8e20ff3d7b 100644 --- a/content/open-source/sigstore/policy-controller/policies/using-policy-controller-to-verify-signed-chainguard-images.md +++ b/content/open-source/sigstore/policy-controller/policies/using-policy-controller-to-verify-signed-chainguard-images.md @@ -15,6 +15,7 @@ menu: parent: "policy-controller" weight: 006 toc: true +contentType: "how-to-guide" --- This guide demonstrates how to use the [Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/) to verify image signatures before admitting an image into a Kubernetes cluster. In this guide, you will create a `ClusterImagePolicy` that checks for a keyless Cosign image signature, and then test the admission controller by running a signed `nginx` image. diff --git a/content/open-source/sigstore/rekor/_index.md b/content/open-source/sigstore/rekor/_index.md index 7faac8ec4b..467e5f1d2a 100644 --- a/content/open-source/sigstore/rekor/_index.md +++ b/content/open-source/sigstore/rekor/_index.md @@ -9,6 +9,7 @@ menu: docs: parent: "sigstore" images: [] +contentType: "conceptual" --- -An immutable, tamper-resistant ledger of metadata generated within a software project’s supply chain \ No newline at end of file +An immutable, tamper-resistant ledger of metadata generated within a software project’s supply chain diff --git a/content/open-source/sigstore/rekor/an-introduction-to-rekor.md b/content/open-source/sigstore/rekor/an-introduction-to-rekor.md index 906cb7ea07..78fe5bab37 100644 --- a/content/open-source/sigstore/rekor/an-introduction-to-rekor.md +++ b/content/open-source/sigstore/rekor/an-introduction-to-rekor.md @@ -15,6 +15,7 @@ menu: identifier: "Rekor Introduction" weight: 001 toc: true +contentType: "conceptual" --- _An earlier version of this material was published in the [Rekor chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@e785fae1be184e2c929db62dbe7444fa/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@a48c33126e2c4ee6ad3bfa6b7bc9c957) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/rekor/how-to-install-rekor.md b/content/open-source/sigstore/rekor/how-to-install-rekor.md index 2e37dda803..64d82d23b5 100644 --- a/content/open-source/sigstore/rekor/how-to-install-rekor.md +++ b/content/open-source/sigstore/rekor/how-to-install-rekor.md @@ -14,6 +14,7 @@ menu: identifier: "Rekor CLI Install" weight: 002 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Rekor chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@e785fae1be184e2c929db62dbe7444fa/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@a48c33126e2c4ee6ad3bfa6b7bc9c957) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/rekor/how-to-query-rekor.md b/content/open-source/sigstore/rekor/how-to-query-rekor.md index 6c2ae4e1cc..70b95af45b 100644 --- a/content/open-source/sigstore/rekor/how-to-query-rekor.md +++ b/content/open-source/sigstore/rekor/how-to-query-rekor.md @@ -13,6 +13,7 @@ menu: parent: "rekor" weight: 003 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Rekor chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@e785fae1be184e2c929db62dbe7444fa/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@a48c33126e2c4ee6ad3bfa6b7bc9c957) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/rekor/how-to-sign-and-upload-metadata-to-rekor.md b/content/open-source/sigstore/rekor/how-to-sign-and-upload-metadata-to-rekor.md index 002eb45afe..3c83d1d64e 100644 --- a/content/open-source/sigstore/rekor/how-to-sign-and-upload-metadata-to-rekor.md +++ b/content/open-source/sigstore/rekor/how-to-sign-and-upload-metadata-to-rekor.md @@ -14,6 +14,7 @@ menu: parent: "rekor" weight: 004 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Rekor chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@e785fae1be184e2c929db62dbe7444fa/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@a48c33126e2c4ee6ad3bfa6b7bc9c957) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/sigstore/rekor/install-a-rekor-instance.md b/content/open-source/sigstore/rekor/install-a-rekor-instance.md index b760a74614..90b2ad96c3 100644 --- a/content/open-source/sigstore/rekor/install-a-rekor-instance.md +++ b/content/open-source/sigstore/rekor/install-a-rekor-instance.md @@ -14,6 +14,7 @@ menu: parent: "rekor" weight: 005 toc: true +contentType: "how-to-guide" --- _An earlier version of this material was published in the [Rekor chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@e785fae1be184e2c929db62dbe7444fa/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@a48c33126e2c4ee6ad3bfa6b7bc9c957) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/open-source/update-bash-macos.md b/content/open-source/update-bash-macos.md index 483ae974f9..9f1a31b630 100644 --- a/content/open-source/update-bash-macos.md +++ b/content/open-source/update-bash-macos.md @@ -12,6 +12,7 @@ menu: parent: "open-source" weight: 100 toc: true +contentType: "how-to-guide" --- The bash release included with macOS (v3.2) needs to be updated for Chainguard scripts. You’ll need to install a newer release and ensure it appears before `/bin/bash` in `$PATH`. @@ -128,4 +129,4 @@ Copyright (C) 2020 Free Software Foundation, Inc. ... ``` -If you are not pulling from the correct location or are not running the expected version, please review the steps above to ensure that you did not introduce extra characters. Your Homebrew package manager may be configured to a different path; ensure that it is set up as you expect. \ No newline at end of file +If you are not pulling from the correct location or are not running the expected version, please review the steps above to ensure that you did not introduce extra characters. Your Homebrew package manager may be configured to a different path; ensure that it is set up as you expect. diff --git a/content/open-source/wolfi/_index.md b/content/open-source/wolfi/_index.md index 0b94d227be..b4c15eb3f5 100644 --- a/content/open-source/wolfi/_index.md +++ b/content/open-source/wolfi/_index.md @@ -49,6 +49,7 @@ tutorials: [ ] +contentType: "conceptual" --- Wolfi is a Linux undistro designed to support the creation of container images that meet the requirements of a secure software supply chain. diff --git a/content/open-source/wolfi/apk-package-manager.md b/content/open-source/wolfi/apk-package-manager.md index 49f09dd5a4..0fbac02766 100644 --- a/content/open-source/wolfi/apk-package-manager.md +++ b/content/open-source/wolfi/apk-package-manager.md @@ -14,6 +14,7 @@ menu: parent: "apko" weight: 400 toc: true +contentType: "conceptual" --- [apko](/open-source/apko/getting-started-with-apko/) uses the [apk](https://wiki.alpinelinux.org/wiki/Package_management) package manager to compose container images based on declarative pipelines. diff --git a/content/open-source/wolfi/apk-version-selection.md b/content/open-source/wolfi/apk-version-selection.md index 8f73cc2b0f..ce50931fc0 100644 --- a/content/open-source/wolfi/apk-version-selection.md +++ b/content/open-source/wolfi/apk-version-selection.md @@ -12,6 +12,7 @@ menu: parent: "wolfi" weight: 750 toc: true +contentType: "conceptual" --- This document explains how to specify version constraints for packages installed with the apk tool, as well as apko and melange. Understanding version selection will enable you to choose the version you're looking for, determine what updates and vulnerability fixes you receive, and can allow you to reproduce an image's digest through exact version matching. diff --git a/content/open-source/wolfi/building-a-wolfi-package.md b/content/open-source/wolfi/building-a-wolfi-package.md index 4285bc2b4f..9a0a2c3805 100644 --- a/content/open-source/wolfi/building-a-wolfi-package.md +++ b/content/open-source/wolfi/building-a-wolfi-package.md @@ -12,6 +12,7 @@ menu: parent: "wolfi" weight: 300 toc: true +contentType: "tutorial" --- Wolfi is a Linux distro created specifically for building stripped-down container images that only include the essential packages needed to run applications in containers. This makes it more secure, as there are fewer potential attack vectors due to the reduced surface area. diff --git a/content/open-source/wolfi/faq.md b/content/open-source/wolfi/faq.md index cebfa36b79..d16c790841 100644 --- a/content/open-source/wolfi/faq.md +++ b/content/open-source/wolfi/faq.md @@ -12,6 +12,7 @@ menu: parent: "wolfi" weight: 300 toc: true +contentType: "conceptual" --- ## What is Wolfi and how does it compare to Alpine? Wolfi is our Linux _undistro_ designed from the ground up to support newer computing paradigms such as containers. Although Wolfi has a few similar design principles as Alpine (such as using apk), it is a different distribution that is focused on supply chain security. Unlike Alpine, Wolfi does not currently build its own Linux kernel, instead relying on the host environment (e.g. a container runtime) to provide one. diff --git a/content/open-source/wolfi/hello-wolfi.md b/content/open-source/wolfi/hello-wolfi.md index 41763cf20a..2818572679 100644 --- a/content/open-source/wolfi/hello-wolfi.md +++ b/content/open-source/wolfi/hello-wolfi.md @@ -12,6 +12,7 @@ menu: parent: "wolfi" weight: 500 toc: true +contentType: "tutorial" --- ## Introduction diff --git a/content/open-source/wolfi/overview.md b/content/open-source/wolfi/overview.md index 7a9dd40fd0..418d0f21fa 100644 --- a/content/open-source/wolfi/overview.md +++ b/content/open-source/wolfi/overview.md @@ -13,6 +13,7 @@ menu: parent: "wolfi" weight: 100 toc: true +contentType: "conceptual" --- [Wolfi](https://github.com/wolfi-dev) is a community Linux [undistro](#why-undistro) designed for the container and cloud-native era. Chainguard started the Wolfi project to build [Chainguard Containers](/chainguard/chainguard-images/overview/), our collection of curated [distroless](/chainguard/chainguard-images/getting-started-distroless/) images that meet the requirements of a secure software supply chain. This required a Linux distribution with components at the appropriate granularity and with support for [glibc](https://www.gnu.org/software/libc/). diff --git a/content/open-source/wolfi/wolfi-with-dockerfiles.md b/content/open-source/wolfi/wolfi-with-dockerfiles.md index d4c98f8b44..43fd9db31a 100644 --- a/content/open-source/wolfi/wolfi-with-dockerfiles.md +++ b/content/open-source/wolfi/wolfi-with-dockerfiles.md @@ -13,6 +13,7 @@ menu: parent: "wolfi" weight: 500 toc: true +contentType: "tutorial" --- ## Introduction diff --git a/content/software-security/_index.md b/content/software-security/_index.md index 64e39947bb..87410fdd92 100644 --- a/content/software-security/_index.md +++ b/content/software-security/_index.md @@ -7,4 +7,5 @@ lastmod: 2022-08-01T08:47:36+00:00 draft: false images: [] weight: 3 +contentType: "conceptual" --- diff --git a/content/software-security/comics/_index.md b/content/software-security/comics/_index.md index 19555ecdf9..8e16270951 100644 --- a/content/software-security/comics/_index.md +++ b/content/software-security/comics/_index.md @@ -7,5 +7,6 @@ date: 2023-07-25T15:24:23+00:00 lastmod: 2023-07-26T19:26:41+00:00 draft: false images: [] +contentType: "conceptual" --- -Join Linky on their mission to sea-cure the software supply chain! \ No newline at end of file +Join Linky on their mission to sea-cure the software supply chain! diff --git a/content/software-security/comics/fighting-vulnerabilities/index.md b/content/software-security/comics/fighting-vulnerabilities/index.md index 2c5da5223f..f2b3890ee8 100644 --- a/content/software-security/comics/fighting-vulnerabilities/index.md +++ b/content/software-security/comics/fighting-vulnerabilities/index.md @@ -15,6 +15,7 @@ menu: parent: "comics" weight: 001 toc: true +contentType: "conceptual" --- Comic featuring Chainguard's mascot, Linky the octopus, using their tentacles to defend a vulnerable computer from software vulnerabilities. The vulnerabilities take the form of robotic octopuses charging forward as an army toward the computer. diff --git a/content/software-security/cves/_index.md b/content/software-security/cves/_index.md index 4da1cdd4c1..5d1f1f5aa5 100644 --- a/content/software-security/cves/_index.md +++ b/content/software-security/cves/_index.md @@ -6,5 +6,6 @@ date: 2023-06-30T19:07:55+00:00 lastmod: 2023-07-13T19:46:58+00:00 draft: false images: [] +contentType: "conceptual" --- -CVEs, or Common Vulnerabilities and Exposures, are entries of publicly disclosed software vulnerabilities which, if not addressed, may be used by attackers to access, manipulate, or compromise a computer system. \ No newline at end of file +CVEs, or Common Vulnerabilities and Exposures, are entries of publicly disclosed software vulnerabilities which, if not addressed, may be used by attackers to access, manipulate, or compromise a computer system. diff --git a/content/software-security/cves/cve-intro.md b/content/software-security/cves/cve-intro.md index 241dc5b3e1..e2cb2a35f7 100644 --- a/content/software-security/cves/cve-intro.md +++ b/content/software-security/cves/cve-intro.md @@ -14,6 +14,7 @@ menu: parent: "cves" weight: 001 toc: true +contentType: "conceptual" --- A [_software vulnerability_](/software-security/glossary/#software-vulnerability) is a weakness in a program which, if left unaddressed, may be used by attackers to access, manipulate, or compromise a computer system. Vulnerabilities can be introduced at different stages of development and vary in their scope, criticality, and potential attack vector depending on their root cause. As a consequence, software developers spend time and resources triaging, remediating, and patching vulnerabilities to harden their software security and to prevent attackers from exploiting unintended program behavior. diff --git a/content/software-security/cves/cve-remediation.md b/content/software-security/cves/cve-remediation.md index 6fea3c29f5..b6fb9db23a 100644 --- a/content/software-security/cves/cve-remediation.md +++ b/content/software-security/cves/cve-remediation.md @@ -14,6 +14,7 @@ menu: parent: "cves" weight: 004 toc: true +contentType: "conceptual" --- At worst, a software vulnerability can impose a critical security flaw that warrants attention. Developers [care about mitigating software vulnerabilities](/software-security/cves/cve-why-care/) because their presence may harm the integrity of their product, negatively affect downstream users, or slow down efforts toward meeting regulatory requirements. However, modern software development practices which incorporate third-party packages in addition to newly scripted code can complicate the vulnerability remediation process. Keeping track of how and where vulnerabilities are introduced, as well as what introduced them, is an arduous task when multitudes of dependencies are working together. diff --git a/content/software-security/cves/cve-why-care.md b/content/software-security/cves/cve-why-care.md index aafb99aeed..963f806842 100644 --- a/content/software-security/cves/cve-why-care.md +++ b/content/software-security/cves/cve-why-care.md @@ -14,6 +14,7 @@ menu: parent: "cves" weight: 002 toc: true +contentType: "conceptual" --- Software products are prone to [*vulnerabilities*](/software-security/cves/cve-intro/) which, if exploited by an attacker, may negatively impact the systems and consumers relying on them. Attacks against vulnerable software systems can result in the unintended exposure and misuse of sensitive data (like the theft of user account credentials). In other cases, these attacks could affect the provision of a service, or compromise critical infrastructure that relies on the software. Given the considerable threat that they can pose, it is important that developers spend time mitigating vulnerabilities to protect against hackers seeking to exploit them. @@ -55,4 +56,4 @@ The Department of Homeland Security (DHS) Cybersecurity and Infrastructure Secur In this article, we discussed reasons why you should care about software vulnerabilities from a development perspective. In addition, you were introduced to federal regulations that draw importance to vulnerability management and secure development practices. This knowledge will help you begin managing vulnerabilities present in the software you develop, improving your security profile and giving you a head start toward meeting regulations like FedRAMP. -To learn more about the importance of software vulnerability management and meeting federal regulations, you can explore the process of [gaining FedRAMP Authorization](https://www.fedramp.gov/rev5/agency-authorization/), or learn [how Chainguard Containers can help reduce CVEs in your container images](https://www.chainguard.dev/chainguard-images). \ No newline at end of file +To learn more about the importance of software vulnerability management and meeting federal regulations, you can explore the process of [gaining FedRAMP Authorization](https://www.fedramp.gov/rev5/agency-authorization/), or learn [how Chainguard Containers can help reduce CVEs in your container images](https://www.chainguard.dev/chainguard-images). diff --git a/content/software-security/cves/infamous-cves.md b/content/software-security/cves/infamous-cves.md index 4edbebc0d9..39936f9e9f 100644 --- a/content/software-security/cves/infamous-cves.md +++ b/content/software-security/cves/infamous-cves.md @@ -14,6 +14,7 @@ menu: parent: "cves" weight: 003 toc: true +contentType: "conceptual" --- [Software vulnerabilities](/software-security/cves/cve-intro/) vary in their severity – some are difficult to exploit and have minimal implications, while others can be exploited easily, giving an attacker significant leverage over a computer system. In cases where widely-implemented software contains high-severity vulnerabilities, the damage caused by their exploitation can affect millions of developers and services worldwide. diff --git a/content/software-security/glossary.md b/content/software-security/glossary.md index d07dd469ee..729adf4122 100644 --- a/content/software-security/glossary.md +++ b/content/software-security/glossary.md @@ -13,6 +13,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- ## General terms diff --git a/content/software-security/learning-labs/_index.md b/content/software-security/learning-labs/_index.md index 39e581553f..1c74745904 100644 --- a/content/software-security/learning-labs/_index.md +++ b/content/software-security/learning-labs/_index.md @@ -9,6 +9,7 @@ images: [] tags: ["Learning Labs", "Overview"] toc: true hidepageslist: true +contentType: "conceptual" --- Learning Labs are [regularly run, virtual events from diff --git a/content/software-security/learning-labs/ll202505.md b/content/software-security/learning-labs/ll202505.md index b680becde2..efc280e776 100644 --- a/content/software-security/learning-labs/ll202505.md +++ b/content/software-security/learning-labs/ll202505.md @@ -12,6 +12,7 @@ menu: parent: "learning-labs" weight: 100 toc: true +contentType: "conceptual" --- The May 2025 Learning Lab with Manfred Moser covers Chainguard Libraries for diff --git a/content/software-security/learning-labs/ll202506.md b/content/software-security/learning-labs/ll202506.md index 1de58a1b66..33fcdd44a0 100644 --- a/content/software-security/learning-labs/ll202506.md +++ b/content/software-security/learning-labs/ll202506.md @@ -12,6 +12,7 @@ menu: parent: "learning-labs" weight: 97 toc: true +contentType: "conceptual" --- The June 2025 Learning Lab with Patrick Smyth covers Chainguard Libraries for diff --git a/content/software-security/learning-labs/ll202507.md b/content/software-security/learning-labs/ll202507.md index 6d7c8b2237..cbd2eb8c35 100644 --- a/content/software-security/learning-labs/ll202507.md +++ b/content/software-security/learning-labs/ll202507.md @@ -12,6 +12,7 @@ menu: parent: "learning-labs" weight: 94 toc: true +contentType: "conceptual" --- The July 2025 Learning Lab with Patrick Smyth covers AI with Hardened Container Images. In this session, learn how to secure AI workloads by reducing vulnerabilities in container images by over 90%. Patrick demonstrates hands-on techniques for training an animal detection model using PyTorch with hardened container images, creating minimal and secure deployments, and running AI frameworks with zero CVEs. diff --git a/content/software-security/learning-labs/ll202508.md b/content/software-security/learning-labs/ll202508.md index e885900f3d..dfa7a1f07f 100644 --- a/content/software-security/learning-labs/ll202508.md +++ b/content/software-security/learning-labs/ll202508.md @@ -12,6 +12,7 @@ menu: parent: "learning-labs" weight: 93 toc: true +contentType: "conceptual" --- The August 2025 Learning Lab with Erika Heidi covers [DFC](/chainguard/migration/dockerfile-conversion/), or Dockerfile Converter, an open source tool created by the Chainguard team to facilitate migration to Chainguard Containers. In this session, learn how to install and use DFC to effectively convert your Dockerfiles to use minimal container images from Chainguard. Erika demonstrates how to use various flags to customize DFC's output and also how to connect the DFC MCP server to your AI assistant to have DFC functionality integrated within your current AI workflow. diff --git a/content/software-security/secure-software-development/_index.md b/content/software-security/secure-software-development/_index.md index 3d2d745c39..e58efcdfee 100644 --- a/content/software-security/secure-software-development/_index.md +++ b/content/software-security/secure-software-development/_index.md @@ -6,4 +6,5 @@ date: 2023-05-10T08:49:15+00:00 lastmod: 2023-05-10T08:49:15+00:00 draft: false images: [] ---- \ No newline at end of file +contentType: "conceptual" +--- diff --git a/content/software-security/secure-software-development/minimum-attestation-references.md b/content/software-security/secure-software-development/minimum-attestation-references.md index e7214f3f2c..de960ca5b5 100644 --- a/content/software-security/secure-software-development/minimum-attestation-references.md +++ b/content/software-security/secure-software-development/minimum-attestation-references.md @@ -11,6 +11,7 @@ menu: parent: "secure-software-development" weight: 20 toc: true +contentType: "conceptual" --- The minimum requirements within the Secure Software Attestation Form address requirements put forth in EO 14028 subsection (4)(e) and specific SSDF practices and tasks. For reference, @@ -34,4 +35,4 @@ please review the chart below. Table of the references comes from the top of the [original RFC PDF](https://www.cisa.gov/secure-software-attestation-form). -_Reprinted courtesy of the National Institute of Standards and Technology, U.S. Department of Commerce. Not copyrightable in the United States._ \ No newline at end of file +_Reprinted courtesy of the National Institute of Standards and Technology, U.S. Department of Commerce. Not copyrightable in the United States._ diff --git a/content/software-security/secure-software-development/ssd-attestation-form.md b/content/software-security/secure-software-development/ssd-attestation-form.md index 40b5916469..1d82d83af2 100644 --- a/content/software-security/secure-software-development/ssd-attestation-form.md +++ b/content/software-security/secure-software-development/ssd-attestation-form.md @@ -12,6 +12,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- ## Attestation and Signature @@ -48,4 +49,4 @@ Please check the appropriate boxes below, if applicable: The [Draft of the Secure Software Development Self Attestation Form](https://www.cisa.gov/secure-software-attestation-form) available on cisa.gov, was released as part of a [Request For Comments](https://www.cisa.gov/secure-software-attestation-form) on April 27, 2023. Comments are due on June 26, 2023. -_Reprinted courtesy of the National Institute of Standards and Technology, U.S. Department of Commerce. Not copyrightable in the United States._ \ No newline at end of file +_Reprinted courtesy of the National Institute of Standards and Technology, U.S. Department of Commerce. Not copyrightable in the United States._ diff --git a/content/software-security/secure-software-development/ssdf.md b/content/software-security/secure-software-development/ssdf.md index 45518bdd10..27058787e9 100644 --- a/content/software-security/secure-software-development/ssdf.md +++ b/content/software-security/secure-software-development/ssdf.md @@ -12,6 +12,7 @@ menu: parent: "secure-software-development" weight: 15 toc: true +contentType: "conceptual" --- ## SSDF Table @@ -261,4 +262,4 @@ toc: true The SSDF Table was originally published at [NIST SP 800-218: Secure Software Development Framework (SSDF) Version 1.1: Recommendations for Mitigating the Risk of Software Vulnerabilities](https://csrc.nist.gov/publications/detail/sp/800-218/final). -_Reprinted courtesy of the National Institute of Standards and Technology, U.S. Department of Commerce. Not copyrightable in the United States._ \ No newline at end of file +_Reprinted courtesy of the National Institute of Standards and Technology, U.S. Department of Commerce. Not copyrightable in the United States._ diff --git a/content/software-security/selecting-a-base-image.md b/content/software-security/selecting-a-base-image.md index 6d047363a2..2d0f554de4 100644 --- a/content/software-security/selecting-a-base-image.md +++ b/content/software-security/selecting-a-base-image.md @@ -15,6 +15,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- Software teams building and deploying container-based software applications often use a "base image," an initial set of software packages often associated with a Linux distribution. Software developers, security professionals, and infrastructure teams seeking to make an informed decision about what base image to use must consider a number of criteria when selecting a base image appropriate for their needs. Base images like those provided by Chainguard are designed to meet these security criteria while maintaining compatibility. To help these parties make a more informed decision when selecting a base image, this article describes a range of criteria: diff --git a/content/software-security/trademark.md b/content/software-security/trademark.md index b8369d7e44..897655e364 100644 --- a/content/software-security/trademark.md +++ b/content/software-security/trademark.md @@ -14,6 +14,7 @@ menu: parent: "software-security" weight: 999 toc: true +contentType: "product-docs" --- Chainguard has a [Trademark Use Policy](https://www.chainguard.dev/legal/chainguard-trademark-use-policy) for Chainguard™ and Wolfi™. The Trademark Use Policy for Chainguard™ is in connection with its software tools and platforms for container image registry services and related educational services. The Trademark Use Policy for Wolfi™ is in connection with software tools and related community services. This policy helps ensure that Chainguard’s trademarks remain reliable indicators of the qualities that they are meant to preserve. diff --git a/content/software-security/videos/PyPI.md b/content/software-security/videos/PyPI.md index f6d040c3c7..67ba62ace5 100644 --- a/content/software-security/videos/PyPI.md +++ b/content/software-security/videos/PyPI.md @@ -12,6 +12,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- {{< youtube IvxWXk5jSsc >}} diff --git a/content/software-security/videos/_index.md b/content/software-security/videos/_index.md index 76d8449317..862ef96fe5 100644 --- a/content/software-security/videos/_index.md +++ b/content/software-security/videos/_index.md @@ -6,4 +6,5 @@ date: 2022-09-05T08:49:15+00:00 lastmod: 2022-09-05T08:49:15+00:00 draft: false images: [] ---- \ No newline at end of file +contentType: "conceptual" +--- diff --git a/content/software-security/videos/distroless.md b/content/software-security/videos/distroless.md index 2a849a1669..ef80ddc1e9 100644 --- a/content/software-security/videos/distroless.md +++ b/content/software-security/videos/distroless.md @@ -12,6 +12,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- {{< youtube rCy7PrS2REY >}} @@ -32,4 +33,4 @@ Another metaphor here is this massive ship that has a crane on the ship itself. A distroless analogy would be small ships here, holding exactly one container each. There's no extra or wasted space, there's no crane to load or unload them; you have to do that from the outside before you go on your journey. -To figure out how they work, let's again start with the traditional fat container image. These images are built up in layers. You start with a base image that contains the package manager, a shell, and other tools you might need to get your application inside. Then you add on layers, one at a time. These layers can only really add things they can add compiled executables or new packages. You can't remove things from previous layers. \ No newline at end of file +To figure out how they work, let's again start with the traditional fat container image. These images are built up in layers. You start with a base image that contains the package manager, a shell, and other tools you might need to get your application inside. Then you add on layers, one at a time. These layers can only really add things they can add compiled executables or new packages. You can't remove things from previous layers. diff --git a/content/software-security/videos/github-typosquatting.md b/content/software-security/videos/github-typosquatting.md index 414937f888..061061f8f7 100644 --- a/content/software-security/videos/github-typosquatting.md +++ b/content/software-security/videos/github-typosquatting.md @@ -12,6 +12,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- {{< youtube nB3xw3Nazgc >}} @@ -34,4 +35,4 @@ There's a couple of different ways: As an end user, pay very close attention to your dependencies, it's going to be hard to notice typosquatting attacks like this, but these are all very recently created repositories with very few stars and little activity as a maintainer. -To prevent someone from creating an imposter repository, the only protection really available today is to sign your commits. There's a bunch of different tooling to do this, including a new one called Gitsign, it's part of the Sigstore project. None of these are perfect and solve it completely. But if you pay enough attention, and if enough people start signing their commits, it will be easier for us to detect these across the open source ecosystem at scale. \ No newline at end of file +To prevent someone from creating an imposter repository, the only protection really available today is to sign your commits. There's a bunch of different tooling to do this, including a new one called Gitsign, it's part of the Sigstore project. None of these are perfect and solve it completely. But if you pay enough attention, and if enough people start signing their commits, it will be easier for us to detect these across the open source ecosystem at scale. diff --git a/content/software-security/videos/sigstore.md b/content/software-security/videos/sigstore.md index 7c7d921bff..89a39b7a22 100644 --- a/content/software-security/videos/sigstore.md +++ b/content/software-security/videos/sigstore.md @@ -12,6 +12,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- {{< youtube veiCVgDpYcY >}} diff --git a/content/software-security/what-are-containers/index.md b/content/software-security/what-are-containers/index.md index 6884faa9c2..4180779191 100644 --- a/content/software-security/what-are-containers/index.md +++ b/content/software-security/what-are-containers/index.md @@ -15,6 +15,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- Maximizing the performance of computer hardware has been a critical undertaking for software engineers for decades. First developed in the 1960s, virtual machines (VMs) were an early answer to this challenge, allowing a single computer to host multiple, isolated operating systems. VMs enable different guest users or processes to share physical infrastructure while keeping their concurrent operations separated. However, as VMs are both slow to initialize and resource-intensive, a modern solution arrived in the early 2000s: containers. diff --git a/content/software-security/what-is-software-supply-chain-security.md b/content/software-security/what-is-software-supply-chain-security.md index f1f9f6e308..a7bcaa55bd 100644 --- a/content/software-security/what-is-software-supply-chain-security.md +++ b/content/software-security/what-is-software-supply-chain-security.md @@ -15,6 +15,7 @@ menu: parent: "software-security" weight: 10 toc: true +contentType: "conceptual" --- _An earlier version of this material was published in the [first chapter](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/block-v1:LinuxFoundationX+LFS182x+2T2022+type@sequential+block@1623557b9fc849d5a1e38177502b1499/block-v1:LinuxFoundationX+LFS182x+2T2022+type@vertical+block@825d4b442d1346ba8e9d7c3b4f765e76) of the Linux Foundation [Sigstore course](https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS182x+2T2022/home)._ diff --git a/content/vulnerabilities/index.md b/content/vulnerabilities/index.md index 25c6509578..b2e86e3527 100644 --- a/content/vulnerabilities/index.md +++ b/content/vulnerabilities/index.md @@ -8,5 +8,6 @@ images: [] weight: 2 weight: 100 toc: false +contentType: "conceptual" --- diff --git a/docs/CONTENT_TYPE_GUIDE.md b/docs/CONTENT_TYPE_GUIDE.md new file mode 100644 index 0000000000..a90d9e1955 --- /dev/null +++ b/docs/CONTENT_TYPE_GUIDE.md @@ -0,0 +1,275 @@ +# Content Type Taxonomy Guide + +## Overview + +All content pages in Chainguard Academy are categorized using a `contentType` field in the frontmatter. This taxonomy helps organize content, assign work to team members, and ensure the right type of content is created for each use case. + +The content type system is based on the [Diátaxis documentation framework](https://diataxis.fr/), which organizes documentation by user intent and content purpose. + +## Content Type Field + +Add this field to your markdown frontmatter: + +```yaml +--- +title: "Your Page Title" +type: "article" +description: "..." +draft: false +tags: ["Tag1", "Tag2"] +contentType: "product-docs" +--- +``` + +## Content Type Definitions + +### `product-docs` - Product Documentation + +**Purpose**: Reference documentation for Chainguard products and services. + +**Characteristics**: +- API specifications and endpoints +- CLI command reference +- Configuration options and parameters +- Architecture documentation +- Product feature descriptions +- Technical specifications + +**When to use**: +- Documenting APIs, CLIs, or SDKs +- Explaining product features and capabilities +- Providing configuration references +- Describing system architecture + +**Examples**: +- `content/chainguard/administration/api.md` +- `content/chainguard/chainctl/chainctl-docs/chainctl_auth.md` +- `content/chainguard/libraries/overview.md` + +--- + +### `tutorial` - Learning-Oriented Guides + +**Purpose**: Help newcomers to a specific subject learn by successfully completing a meaningful project. + +**Characteristics**: +- Takes learners step-by-step from start to finish +- Teaches concepts while doing +- Provides a safe, repeatable learning experience +- Explains "why" along with "how" +- Assumes little to no prior knowledge +- Builds something complete from scratch + +**When to use**: +- Getting started guides +- First-time user onboarding +- Teaching new concepts through practice +- Building example projects + +**Examples**: +- `content/chainguard/chainctl-usage/getting-started-with-chainctl.md` +- `content/chainguard/chainguard-images/about/getting-started-distroless.md` +- `content/open-source/build-tools/melange/getting-started-with-melange.md` + +**Naming convention**: Often starts with "Getting Started with..." or "Introduction to..." + +--- + +### `how-to-guide` - Task-Oriented Instructions + +**Purpose**: Show how to solve a specific problem or accomplish a specific goal. + +**Characteristics**: +- Focused on achieving a particular task +- Assumes some prior knowledge +- Gets straight to the point with minimal explanation +- Like a recipe - follows steps to reach a goal +- May skip background information +- Doesn't necessarily teach concepts + +**When to use**: +- Installation instructions +- Configuration guides +- Specific task completion +- Problem-solving procedures +- Troubleshooting steps + +**Examples**: +- `content/open-source/sigstore/cosign/how-to-install-cosign.md` +- `content/chainguard/administration/cloudevents/image-copy-gcr/index.md` +- `content/chainguard/chainguard-images/tooling/debugging-distroless-images.md` + +**Naming convention**: Often starts with "How to..." + +--- + +### `integration` - Third-Party Integration Guides + +**Purpose**: Document how to use Chainguard products with third-party tools and platforms. + +**Characteristics**: +- Combines Chainguard products with external systems +- Platform-specific implementations +- Often includes both setup and usage +- May involve authentication/authorization flows + +**When to use**: +- CI/CD platform integrations (GitHub Actions, GitLab CI, Jenkins) +- Identity provider integrations (OIDC, SAML) +- Container registry integrations +- Policy enforcement tools (Kyverno, OPA Gatekeeper) +- Cloud platform integrations (AWS, GCP, Azure) + +**Examples**: +- `content/chainguard/administration/assumable-ids/identity-examples/github-identity/index.md` +- `content/chainguard/chainguard-images/staying-secure/enforcement/kyverno/index.md` +- `content/chainguard/chainguard-images/how-to-use/use-with-openshift.md` + +--- + +### `conceptual` - Educational/Explanatory Content + +**Purpose**: Explain concepts, provide context, and help users understand the "why" behind technologies. + +**Characteristics**: +- Theoretical and explanatory +- Provides background information +- Helps readers understand concepts +- Often includes comparisons and examples +- Not task-oriented + +**When to use**: +- "What is..." explanations +- Security concepts and best practices +- Standards and compliance information +- Architectural overviews +- Background information +- FAQs and glossaries + +**Examples**: +- `content/software-security/selecting-a-base-image.md` +- `content/open-source/sbom/what-is-an-sbom.md` +- `content/open-source/wolfi/overview.md` +- `content/compliance/slsa/slsa-levels.md` + +**Naming convention**: Often starts with "What is..." or "Understanding..." + +--- + +## Decision Tree: Which Content Type? + +``` +Is this about a Chainguard product? +├─ Yes → Is it reference documentation (API, CLI, features)? +│ ├─ Yes → product-docs +│ └─ No → Continue... +└─ No → Continue... + +Does it teach beginners through a complete example? +├─ Yes → tutorial +└─ No → Continue... + +Does it solve a specific task or problem? +├─ Yes → Is it integrating with a third-party tool? +│ ├─ Yes → integration +│ └─ No → how-to-guide +└─ No → conceptual +``` + +## Quick Reference Table + +| Content Type | User Question | Example Title | +|--------------|---------------|---------------| +| **product-docs** | "What can this do?" | "chainctl auth Commands" | +| **tutorial** | "Can you teach me?" | "Getting Started with Distroless Images" | +| **how-to-guide** | "How do I...?" | "How to Install Cosign" | +| **integration** | "How do I use X with Y?" | "Using Chainguard Images with GitHub Actions" | +| **conceptual** | "What is this?" | "What is an SBOM?" | + +## Examples by Directory + +### `/content/chainguard/` +- **administration/** → mostly `product-docs` +- **chainctl/chainctl-docs/** → all `product-docs` (CLI reference) +- **chainctl-usage/** → mix of `tutorial` and `how-to-guide` +- **libraries/** → `product-docs` +- **factory/** → `product-docs` +- **chainguard-images/getting-started/** → `tutorial` +- **chainguard-images/how-to-use/** → `how-to-guide` +- **migration/** → `how-to-guide` + +### `/content/open-source/` +- **wolfi/overview.md** → `conceptual` +- **wolfi/hello-wolfi.md** → `tutorial` +- **sigstore/cosign/how-to-*.md** → `how-to-guide` +- **sigstore/cosign/an-introduction-to-*.md** → `conceptual` +- **sbom/what-is-*.md** → `conceptual` + +### `/content/software-security/` +- Most files → `conceptual` (educational content) + +### `/content/compliance/` +- All files → `conceptual` (standards and frameworks) + +## Adding Content Type to New Content + +When creating new content, add the `contentType` field to your frontmatter: + +```yaml +--- +title: "How to Configure Authentication" +type: "article" +description: "Step-by-step guide to configuring authentication" +date: 2025-01-15T10:00:00+00:00 +draft: false +tags: ["Authentication", "Configuration"] +contentType: "how-to-guide" +--- +``` + +## Validation + +Use the validation script to ensure all content has a contentType: + +```bash +./scripts/validate-content-types.sh +``` + +This script will: +- Check all markdown files for the `contentType` field +- Report any missing tags +- Return exit code 0 if valid, 1 if errors found + +## Management Scripts + +See [`scripts/README.md`](scripts/README.md) for available content management tools: + +- `list-by-content-type.sh` - List files by content type +- `export-content-inventory.sh` - Generate CSV inventory +- `content-summary-by-dir.sh` - Show distribution by directory +- `validate-content-types.sh` - Validate all files are tagged + +## Valid Values + +Only these five values are allowed for `contentType`: + +- `product-docs` +- `tutorial` +- `how-to-guide` +- `integration` +- `conceptual` + +## Questions? + +If you're unsure which content type to use: + +1. Review the decision tree above +2. Look at similar existing content in the same directory +3. Ask yourself: "What is the user trying to accomplish?" +4. Consult with the content team + +## Further Reading + +- [Diátaxis Framework](https://diataxis.fr/) - The framework this taxonomy is based on +- [TAG_GUIDELINES.md](TAG_GUIDELINES.md) - Hugo tag taxonomy (different from contentType) +- [scripts/README.md](../scripts/README.md) - Content management tools diff --git a/TAG_GUIDELINES.md b/docs/TAG_GUIDELINES.md similarity index 94% rename from TAG_GUIDELINES.md rename to docs/TAG_GUIDELINES.md index 8a3d3c1aeb..6f4a089a8a 100644 --- a/TAG_GUIDELINES.md +++ b/docs/TAG_GUIDELINES.md @@ -1,7 +1,7 @@ -# Tag Guidelines for Hugo Documentation +# Tag Guidelines for Chainguard Academy ## Overview -This document defines the approved tag taxonomy and usage guidelines for the Hugo documentation site. Following these guidelines ensures consistent categorization and improved discoverability of content. +This document defines the approved tag taxonomy and usage guidelines for the Chainguard Academy site. Following these guidelines ensures consistent categorization and improved discoverability of content. ## Tag Usage Rules @@ -13,9 +13,9 @@ This document defines the approved tag taxonomy and usage guidelines for the Hug - 1-2 topic tags as needed 3. **Format requirements**: - - Use Title Case for regular words (e.g., "Compliance", "Standards") - - Keep acronyms in uppercase (e.g., "CVE", "SBOM", "FAQ") - - Maintain version numbers as-is (e.g., "CMMC 2.0", "PCI DSS 4.0") + - Use Title Case for regular words (as in "Compliance", "Standards") + - Keep acronyms in uppercase (as in "CVE", "SBOM", "FAQ") + - Maintain version numbers as-is (as in "CMMC 2.0", "PCI DSS 4.0") ## Approved Tag Taxonomy diff --git a/scripts/README.md b/scripts/README.md index 2c229d88d4..de4692acc2 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -1,56 +1,69 @@ -# Documentation Compilation Scripts +# Content Management Scripts -This directory contains scripts for compiling Chainguard documentation into a single bundle for AI assistants. +Utility scripts for managing Chainguard Academy content taxonomy and organization. -## Files +## Overview -- `compile_docs.py` - Main compilation script -- `compile_docs_secure.py` - Security-enhanced version (optional) -- `quick-start-guide.md` - Template for the Quick Start Guide -- `create_compressed_docs.sh` - Shell script to create compressed versions -- `requirements.txt` - Python dependencies +All content in this repository is tagged with a `contentType` field in the frontmatter: +- `product-docs` - Chainguard product documentation +- `tutorial` - Learning-oriented guides +- `how-to-guide` - Task-oriented instructions +- `integration` - Third-party integrations +- `conceptual` - Educational/explanatory content -## Quick Start Guide Template +## Scripts -The `quick-start-guide.md` file contains the content that appears at the beginning of every compiled documentation bundle. This approach provides several benefits: +### `list-by-content-type.sh` -### Benefits -1. **Easy Updates**: Edit the markdown file without touching Python code -2. **Version Control**: Track changes to the guide separately -3. **Markdown Preview**: See how it looks in any markdown editor -4. **Reusability**: Can be included in other documentation -5. **Collaboration**: Non-developers can edit the guide +List files by content type. -### Editing the Guide -To update the Quick Start Guide: +**Usage:** +```bash +# Show summary of all content types +./scripts/list-by-content-type.sh + +# List all product documentation files +./scripts/list-by-content-type.sh product-docs -1. Edit `scripts/quick-start-guide.md` -2. Run the compilation: `python3 scripts/compile_docs.py` -3. The updated guide will appear in the next compilation +# List all tutorials +./scripts/list-by-content-type.sh tutorial +``` -### Structure -The guide should include: -- Usage tips for different AI tools -- Example prompts for common tasks -- Search strategies -- Document structure overview +### `export-content-inventory.sh` -## Running the Compilation +Export a CSV inventory of all content with metadata. +**Usage:** ```bash -# From the edu directory -python3 scripts/compile_docs.py +# Generate CSV file +./scripts/export-content-inventory.sh > content-inventory.csv +``` + +The CSV includes: file path, content type, title, and last modified date. + +### `content-summary-by-dir.sh` + +Show content type distribution by directory. -# Create compressed versions -./scripts/create_compressed_docs.sh +**Usage:** +```bash +./scripts/content-summary-by-dir.sh +``` + +### `validate-content-types.sh` + +Validate that all markdown files have a contentType tag. Useful for CI/CD. + +**Usage:** +```bash +./scripts/validate-content-types.sh ``` -## Automation +Returns exit code 0 if all files are tagged, 1 if any are missing tags. -The compilation runs automatically via GitHub Actions when: -- Changes are pushed to the edu repository -- Other repositories trigger updates -- Daily at 2 AM UTC -- Manual workflow dispatch +## Use Cases -The Quick Start Guide will always be included at the top of the compiled documentation. \ No newline at end of file +- **Content audits**: Verify all files are properly tagged +- **Work assignment**: Generate lists for team members to review +- **Content strategy**: Understand content distribution +- **CI/CD validation**: Ensure new content has proper metadata diff --git a/scripts/content-summary-by-dir.sh b/scripts/content-summary-by-dir.sh new file mode 100755 index 0000000000..b13a9b90e4 --- /dev/null +++ b/scripts/content-summary-by-dir.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Show content type distribution by directory +# Usage: ./content-summary-by-dir.sh + +echo "=== Content Type Distribution by Directory ===" +echo "" + +for dir in content/chainguard content/open-source content/software-security content/compliance content/vulnerabilities content/contributors; do + if [ -d "$dir" ]; then + dirname=$(basename "$dir") + echo "📁 $dirname" + echo " ├─ product-docs: $(grep -r 'contentType: "product-docs"' "$dir" --include="*.md" 2>/dev/null | wc -l | tr -d ' ')" + echo " ├─ tutorial: $(grep -r 'contentType: "tutorial"' "$dir" --include="*.md" 2>/dev/null | wc -l | tr -d ' ')" + echo " ├─ how-to-guide: $(grep -r 'contentType: "how-to-guide"' "$dir" --include="*.md" 2>/dev/null | wc -l | tr -d ' ')" + echo " ├─ integration: $(grep -r 'contentType: "integration"' "$dir" --include="*.md" 2>/dev/null | wc -l | tr -d ' ')" + echo " └─ conceptual: $(grep -r 'contentType: "conceptual"' "$dir" --include="*.md" 2>/dev/null | wc -l | tr -d ' ')" + echo "" + fi +done + +echo "=== Chainguard Subdirectories ===" +echo "" +for subdir in content/chainguard/*/; do + if [ -d "$subdir" ]; then + subdirname=$(basename "$subdir") + total=$(find "$subdir" -name "*.md" -type f | wc -l | tr -d ' ') + if [ "$total" -gt 0 ]; then + echo "📂 chainguard/$subdirname ($total files)" + fi + fi +done diff --git a/scripts/export-content-inventory.sh b/scripts/export-content-inventory.sh new file mode 100755 index 0000000000..76398495a3 --- /dev/null +++ b/scripts/export-content-inventory.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Export content inventory to CSV +# Usage: ./export-content-inventory.sh > content-inventory.csv + +echo "File Path,Content Type,Title,Last Modified" + +find content -name "*.md" -type f | while read -r file; do + # Extract contentType + content_type=$(grep -m 1 "^contentType:" "$file" | sed 's/contentType: "\(.*\)"/\1/' | tr -d '\n') + + # Extract title + title=$(grep -m 1 "^title:" "$file" | sed 's/title: "\(.*\)"/\1/' | sed 's/title: \(.*\)/\1/' | tr -d '\n') + + # Get last modified date + if [[ "$OSTYPE" == "darwin"* ]]; then + last_modified=$(stat -f "%Sm" -t "%Y-%m-%d" "$file") + else + last_modified=$(stat -c "%y" "$file" | cut -d' ' -f1) + fi + + # Only output if contentType exists + if [ -n "$content_type" ]; then + echo "\"$file\",\"$content_type\",\"$title\",\"$last_modified\"" + fi +done | sort -t',' -k2,2 -k1,1 diff --git a/scripts/list-by-content-type.sh b/scripts/list-by-content-type.sh new file mode 100755 index 0000000000..0221c08151 --- /dev/null +++ b/scripts/list-by-content-type.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# List files by contentType +# Usage: ./list-by-content-type.sh [contentType] +# Example: ./list-by-content-type.sh product-docs + +CONTENT_TYPE="${1:-all}" + +if [ "$CONTENT_TYPE" = "all" ]; then + echo "=== All Content Types ===" + echo "" + for type in "product-docs" "tutorial" "how-to-guide" "integration" "conceptual"; do + count=$(grep -r "contentType: \"$type\"" content --include="*.md" | wc -l | tr -d ' ') + echo "$type: $count files" + done + echo "" + echo "Usage: $0 [product-docs|tutorial|how-to-guide|integration|conceptual]" +else + echo "=== Files tagged as: $CONTENT_TYPE ===" + echo "" + grep -r "contentType: \"$CONTENT_TYPE\"" content --include="*.md" -l | sort + echo "" + count=$(grep -r "contentType: \"$CONTENT_TYPE\"" content --include="*.md" | wc -l | tr -d ' ') + echo "Total: $count files" +fi diff --git a/scripts/validate-content-types.sh b/scripts/validate-content-types.sh new file mode 100755 index 0000000000..794406dd6e --- /dev/null +++ b/scripts/validate-content-types.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# Validate that all markdown files have a contentType tag +# Exit code 0 = all valid, 1 = some files missing contentType + +EXIT_CODE=0 +MISSING_COUNT=0 + +echo "🔍 Validating contentType tags..." +echo "" + +# Find all markdown files without contentType +while IFS= read -r file; do + if ! grep -q "^contentType:" "$file"; then + if [ $MISSING_COUNT -eq 0 ]; then + echo "❌ Files missing contentType tag:" + echo "" + fi + echo " $file" + MISSING_COUNT=$((MISSING_COUNT + 1)) + EXIT_CODE=1 + fi +done < <(find content -name "*.md" -type f) + +if [ $EXIT_CODE -eq 0 ]; then + TOTAL=$(find content -name "*.md" -type f | wc -l | tr -d ' ') + echo "✅ All $TOTAL markdown files have contentType tags!" +else + TOTAL=$(find content -name "*.md" -type f | wc -l | tr -d ' ') + TAGGED=$((TOTAL - MISSING_COUNT)) + echo "" + echo "📊 Summary: $TAGGED/$TOTAL files tagged ($MISSING_COUNT missing)" + echo "" + echo "Valid contentType values:" + echo " - product-docs" + echo " - tutorial" + echo " - how-to-guide" + echo " - integration" + echo " - conceptual" +fi + +exit $EXIT_CODE