conftest
Kyverno
Our great sponsors
conftest | Kyverno | |
---|---|---|
9 | 35 | |
2,785 | 5,105 | |
1.0% | 3.9% | |
8.5 | 9.9 | |
6 days ago | 2 days ago | |
Go | Go | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
conftest
-
Validation on list(object) variables
I wrote following conftest.dev (OPA), sample policy
- The default.go file meaning
-
Introducing Conftest and setting up CI with Github Actions to automate reviewing of Terraform code
name: tf-plan-apply on: pull_request: branches: [ main ] env: TF_VERSION: 1.0.0 CONFTEST_VERSION: 0.28.3 WORKING_DIR: ./ jobs: terraform: name: aws-eureka-pairs-etc-s3 runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Install conftest run: | wget -O - 'https://github.com/open-policy-agent/conftest/releases/download/v${{ env.CONFTEST_VERSION }}/conftest_${{ env.CONFTEST_VERSION }}_Linux_x86_64.tar.gz' | tar zxvf - ./conftest --version //❶ - name: Setup Terraform uses: hashicorp/setup-terraform@v1 with: terraform_wrapper: false //❷ terraform_version: ${{ env.TF_VERSION }} cli_config_credentials_token: ${{ secrets.YOUR_CRED_NAME}} - name: Terraform Init ${{ env.WORKING_DIR }} working-directory: ${{ env.WORKING_DIR }} run: terraform init - name: Terraform Plan ${{ env.WORKING_DIR }} if: github.event_name == 'pull_request' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ${{ env.WORKING_DIR }} id: plan run: terraform plan -out=tfplan -no-color -lock=false -parallelism=50 - name: Convert terraform plan result to json formmat if: github.event_name == 'pull_request' id: convert working-directory: ${{ env.WORKING_DIR }} run: terraform show -json tfplan > tfplan.json - name: conftest test if: github.event_name == 'pull_request' id: conftest run: ./conftest test --no-color ${{ env.WORKING_DIR }}/tfplan.json //❸
-
Kubernetes Security Checklist 2021
Workload configuration should be audited regularly (Kics, Kubeaudit, Kubescape, Conftest, Kubesec, Checkov)
-
Don't let your Terraform go rogue with Conftest and the Open Policy Agent
Insert Conftest! As they state in their GitHub description, Conftest tests against structured configuration data using the Open Policy Agent Rego query language. In the case of Terraform, this means we're actually running unit tests against sample JSON and actual tests against the Terraform state JSON.
-
Using Open Policy Agent and Conftest to Validate Your Openshift 4 IPI Configuration
While Rego is the policy language we use to assemble our policies, we still need something to run those policies with. If you have a cluster and you want to actively evaluate policies, you can end up running an instance of Open Policy Agent and it's associated tooling. However in our case, we just want to check things at runtime (or just on some recurring basis such as when changes get checked in or a pull request is submitted). In the latter instance, we are able to use another tool from the Open Policy Agent project called ConfTest. What ConfTest allows us to do is to specify a file or directory of files that we want to inspect along with the set of policies we want to inspect them with. It then takes all of that and dumps out the associated outputs from those policies and tell us the results (i.e. the messages, how many policies were checked and the results of those policies). This tool is much better suited for our use case, so this is what we will proceed with. To grab the latest version of ConfTest, you can grab the latest release from here.
-
!!!*IMP: Conftest Integration with AWS or Other*!!!!
OR HOW TO RUN https://github.com/open-policy-agent/conftest AS CI/CD in Circle CI to apply policies?
-
Terraforming in 2021 – new features, testing and compliance
If you like terraform-compliance, Conftest might also be worth having a look. It has its own DSL to write policies, and allows you to test multiple frameworks. We found this blog post from Lennard Eijsackers very informative, and would thus rather recommend you to check it out.
-
Mental models for understanding Kubernetes Pod Security Policy PSP
Can Gatekeeper and Conftest single-source the same set of rules? I'm looking at https://github.com/open-policy-agent/conftest/issues/54#issuecomment-528988831 and not seeing how.
Kyverno
-
Stop 'k rollout restart deploy' from restarting everything?
Anyway, I haven’t checked for sure as I’m away from laptop but it should be possible to use something like Kyverno to block that operation. We had to do similar in the past to hotfix a bug in our CLI tool. I wrote a blog post about it that might give you an idea: https://www.giantswarm.io/blog/restricting-cluster-admin-permissions
-
An Overview of Kubernetes Security Projects at KubeCon Europe 2023
Cosign is used for signing containers through a variety of different methods. It has strong integration with other open source tools, such as Kyverno.
- Kyverno
-
container signing and verification using cosign and kyverno
cosign: https://docs.sigstore.dev/cosign/overview/ kyverno: https://kyverno.io/
-
Introduction to Day 2 Kubernetes
Kyverno - Kubernetes Native Policy Management
-
Admission controller to mutate cpu requests?
You could use a policy tool like kyverno or OPA.
-
Multi-tenancy with ProjectSveltos
Kyverno is present in the management cluster;
-
Did I miss something here, regarding network policies and helm templates? (Slightly ranty)
You do still have to create a policy for every namespace, but don't have to worry about labeling individual pods. We're starting to move to Helm/kustomize for our namespaces to deploy default things like network policies to each one, and we're also starting to use kyverno more, which I think is a little more purpose built for this type of thing than metacontroller is.
-
kubernetes provider resources v1 vs non-v1 is it just me or is this dumb?
I knew it was unsupported so about 6 months ago I had started an effort to switch to Kyverno, which is far better and actually supported. The version of Kyverno I was using had a v1beta1 AdmissionController. Fortunately that was in a helm chart so easily caught by pluto before my upgrade.
-
Kyverno Policy As Code Using CDK8S
Kyverno Kyverno is a policy engine designed for Kubernetes, Kyverno policies can validate, mutate, and generate Kubernetes resources plus ensure OCI image supply chain security.
What are some alternatives?
checkov - Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
falco - Cloud Native Runtime Security
terratest - Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.
gatekeeper - 🐊 Gatekeeper - Policy Controller for Kubernetes
tfsec - Security scanner for your Terraform code [Moved to: https://github.com/aquasecurity/tfsec]
Kubewarden - Kubewarden is a policy engine for Kubernetes. It helps with keeping your Kubernetes clusters secure and compliant. Kubewarden policies can be written using regular programming languages or Domain Specific Languages (DSL) sugh as Rego. Policies are compiled into WebAssembly modules that are then distributed using traditional container registries.
tflint - A Pluggable Terraform Linter
OPA (Open Policy Agent) - Open Policy Agent (OPA) is an open source, general-purpose policy engine.
inspec - InSpec: Auditing and Testing Framework
k-rail - Kubernetes security tool for policy enforcement
gatekeeper-library - 📚 The OPA Gatekeeper policy library