{"id":22598939,"url":"https://github.com/projectsveltos/addon-compliance-controller","last_synced_at":"2025-08-05T08:31:59.423Z","repository":{"id":172999781,"uuid":"648669481","full_name":"projectsveltos/addon-compliance-controller","owner":"projectsveltos","description":"A Kubernetes controller designed to manage add-on compliance for a fleet of clusters.","archived":false,"fork":false,"pushed_at":"2024-01-25T12:22:29.000Z","size":311,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-01-25T13:35:46.464Z","etag":null,"topics":["addon","compliance","constraints","controller","kubernetes"],"latest_commit_sha":null,"homepage":"https://projectsveltos.github.io/sveltos/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/projectsveltos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-06-02T14:08:50.000Z","updated_at":"2024-01-25T13:36:08.313Z","dependencies_parsed_at":"2023-10-12T19:16:58.307Z","dependency_job_id":"8110516a-2305-430f-8369-daf7c57955ed","html_url":"https://github.com/projectsveltos/addon-compliance-controller","commit_stats":null,"previous_names":["projectsveltos/addon-constraint-controller","projectsveltos/addon-compliance-controller"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectsveltos%2Faddon-compliance-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectsveltos%2Faddon-compliance-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectsveltos%2Faddon-compliance-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectsveltos%2Faddon-compliance-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/projectsveltos","download_url":"https://codeload.github.com/projectsveltos/addon-compliance-controller/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228719857,"owners_count":17962223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["addon","compliance","constraints","controller","kubernetes"],"created_at":"2024-12-08T11:07:31.623Z","updated_at":"2024-12-08T11:07:32.329Z","avatar_url":"https://github.com/projectsveltos.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CI](https://github.com/projectsveltos/addon-compliance-controller/actions/workflows/main.yaml/badge.svg)](https://github.com/projectsveltos/addon-compliance-controller/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/projectsveltos/addon-compliance-controller)](https://goreportcard.com/report/github.com/projectsveltos/addon-compliance-controller)\n[![Slack](https://img.shields.io/badge/join%20slack-%23projectsveltos-brighteen)](https://join.slack.com/t/projectsveltos/shared_invite/zt-1hraownbr-W8NTs6LTimxLPB8Erj8Q6Q)\n[![License](https://img.shields.io/badge/license-Apache-blue.svg)](LICENSE)\n\n# libsveltos\n\n\u003cimg src=\"https://raw.githubusercontent.com/projectsveltos/sveltos/main/docs/assets/logo.png\" width=\"200\"\u003e\n\nPlease refere to sveltos [documentation](https://projectsveltos.github.io/sveltos/).\n\n## Archived\nThis repository (sveltos addon compliance) is archived and is no longer actively maintained. The code is still available for reference, but no new features or bug fixes will be added.\n\n\n## What this repository is\nSveltos has the ability to deploy various types of Kubernetes addons across multiple clusters. It supports Helm charts, Kustomize files, YAMLs, Jsonnet, and Carvel ytt. Sveltos can retrieve configuration from diverse sources, including Git repositories. Prior to deploying addons, Sveltos can be directed to validate them against a predefined set of openapi rules.\n\nWithin this repository, you'll find a Kubernetes controller that can fetch addon compliances from different sources and provide them to the addon controller. This enables the addon controller to validate addons before deployment, ensuring that no Kubernetes addons are deployed that violate your own rules.\n\nFollowing is an example enforcing deployments have at least 3 replicas enforced in any cluster matching the label selector `env=production`\n\n```yaml\napiVersion: lib.projectsveltos.io/v1alpha1\nkind: AddonCompliance\nmetadata:\n name: depl-replica\nspec:\n  clusterSelector: env=production\n  openAPIValidationRefs:\n  - namespace: default\n    name: openapi-deployment\n    kind: ConfigMap\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: openapi-deployment\n  namespace: default\ndata:\n  openapi.yaml: |\n    openapi: 3.0.0\n    info:\n      title: Kubernetes Replica Validation\n      version: 1.0.0\n\n    paths:\n      /apis/apps/v1/namespaces/{namespace}/deployments:\n        post:\n          parameters:\n            - in: path\n              name: namespace\n              required: true\n              schema:\n                type: string\n                minimum: 1\n              description: The namespace of the resource\n          summary: Create/Update a new deployment\n          requestBody:\n            required: true\n            content:\n              application/json:\n                schema:\n                  $ref: '#/components/schemas/Deployment'\n          responses:\n            '200':\n              description: OK\n            '400':\n              description: Invalid Deployment. Each deployment in a production cluster requires at least 3 replicas\n\n    components:\n      schemas:\n        Deployment:\n          type: object\n          properties:\n            metadata:\n              type: object\n              properties:\n                name:\n                  type: string\n            spec:\n              type: object\n              properties:\n                replicas:\n                  type: integer\n                  minimum: 3\n```\n\n## Contributing \n\n❤️ Your contributions are always welcome! If you want to contribute, have questions, noticed any bug or want to get the latest project news, you can connect with us in the following ways:\n\n1. Open a bug/feature enhancement on github [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/projectsveltos/sveltos-manager/issues)\n2. Chat with us on the Slack in the #projectsveltos channel [![Slack](https://img.shields.io/badge/join%20slack-%23projectsveltos-brighteen)](https://join.slack.com/t/projectsveltos/shared_invite/zt-1hraownbr-W8NTs6LTimxLPB8Erj8Q6Q)\n3. [Contact Us](mailto:support@projectsveltos.io)\n\n## License\n\nCopyright 2022.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectsveltos%2Faddon-compliance-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprojectsveltos%2Faddon-compliance-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectsveltos%2Faddon-compliance-controller/lists"}