{"id":23033943,"url":"https://github.com/freenowtech/secrets-store-csi-driver-provider-spring-cloud-config","last_synced_at":"2025-04-02T22:14:40.548Z","repository":{"id":46683512,"uuid":"235320547","full_name":"freenowtech/secrets-store-csi-driver-provider-spring-cloud-config","owner":"freenowtech","description":"Spring Cloud Config provider for Secrets Store CSI Driver ","archived":false,"fork":false,"pushed_at":"2024-03-28T11:14:17.000Z","size":142,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T01:01:51.020Z","etag":null,"topics":["csi-driver","kubernetes","provider","secrets-store","spring-cloud-config"],"latest_commit_sha":null,"homepage":"","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/freenowtech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-21T10:54:46.000Z","updated_at":"2024-02-07T10:51:59.000Z","dependencies_parsed_at":"2024-03-28T10:41:49.736Z","dependency_job_id":"45e33dc6-f7c2-4a65-a8b0-7006c1aa5a72","html_url":"https://github.com/freenowtech/secrets-store-csi-driver-provider-spring-cloud-config","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freenowtech%2Fsecrets-store-csi-driver-provider-spring-cloud-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freenowtech%2Fsecrets-store-csi-driver-provider-spring-cloud-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freenowtech%2Fsecrets-store-csi-driver-provider-spring-cloud-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freenowtech%2Fsecrets-store-csi-driver-provider-spring-cloud-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freenowtech","download_url":"https://codeload.github.com/freenowtech/secrets-store-csi-driver-provider-spring-cloud-config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246899668,"owners_count":20851898,"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":["csi-driver","kubernetes","provider","secrets-store","spring-cloud-config"],"created_at":"2024-12-15T16:28:10.141Z","updated_at":"2025-04-02T22:14:40.523Z","avatar_url":"https://github.com/freenowtech.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# secrets-store-csi-driver-provider-spring-cloud-config\n\nThe Spring Cloud Config provider for Secrets Store CSI driver allows you to get content stored in Spring Cloud Config and use the Secrets Store CSI driver interface to mount them into a Kubernetes pods.\n\n## Installation\n\n### Requirements\n\n- A running instance of [Spring Cloud Config Server](https://docs.spring.io/spring-cloud-config/docs/current/reference/html/)\n- [Secrets Store CSI Driver installed](https://secrets-store-csi-driver.sigs.k8s.io/getting-started/installation.html)\n\n### Installing the provider\n\nTo install the provider, use the YAML file in the deployment directory:\n\n```shell\nkubectl apply -f https://raw.githubusercontent.com/freenowtech/secrets-store-csi-driver-provider-spring-cloud-config/master/deployment/provider.yaml\n```\n\n## Usage\n\nCreate a `SecretProviderClass` resource to provide Spring-Cloud-Config-specific parameters for the Secrets Store CSI driver.\n\n```yaml\napiVersion: secrets-store.csi.x-k8s.io/v1alpha1\nkind: SecretProviderClass\nmetadata:\n  name: spring-cloud-config-example\nspec:\n  provider: spring-cloud-config\n  parameters:\n    serverAddress: \"http://configserver.example\" # this url should point to config server\n    application: \"myapp\" # the application you're retrieving the config for\n    profile: \"prod\" # the profile for your application to pull\n    fileName: \"application.yaml\" # the name of the file to create - supports extensions .yaml, .yml, .json and .properties\n```\n\nAfterward, reference your `SecretProviderClass` in your Pod Definition\n\n```yaml\nkind: Pod\napiVersion: v1\nmetadata:\n  name: secrets-store-example\nspec:\n  containers:\n  - image: ubuntu:latest\n    name: ubuntu\n    command: [\"/bin/bash\"]\n    args:\n      - \"-c\"\n      - \"cat /secrets-store/application.yaml \u0026\u0026 sleep 300\"\n    volumeMounts:\n    - name: secrets-store-inline\n      mountPath: \"/secrets-store\"\n      readOnly: true\n  volumes:\n    - name: secrets-store-inline\n      csi:\n        driver: secrets-store.csi.k8s.com\n        readOnly: true\n        volumeAttributes:\n          secretProviderClass: \"spring-cloud-config-example\"\n```\n\n## Development\n\n### Run the binary locally\n\n#### Requirements\n\n- [Go](https://go.dev/doc/install)\n- [gRPCurl](https://github.com/fullstorydev/grpcurl?tab=readme-ov-file#installation)\n\n\n#### Steps to execute\n\n1. Build the binary:\n   ```shell\n   go build\n   ```\n1. Start the binary:\n   ```shell\n   ./secrets-store-csi-driver-provider-spring-cloud-config\n   ```\n1. In a new terminal window, create the directory `.dev`:\n   ```shell\n   mkdir -p .dev\n   ```\n1. Download the grpc protobuf definitions:\n   ```shell\n   curl -L -o .dev/service.proto https://raw.githubusercontent.com/kubernetes-sigs/secrets-store-csi-driver/main/provider/v1alpha1/service.proto\n   ```\n1. Create the payload `.dev/mount.json`:\n   ```json\n   {\n     \"attributes\": \"{\\\"serverAddress\\\":\\\"\u003cyour-server-address\u003e\\\",\\\"application\\\":\\\"\u003cyour application\u003e\\\",\\\"profile\\\":\\\"\u003cyour profile\u003e\\\",\\\"fileName\\\":\\\"application.yaml\\\"}\",\n     \"secrets\": \"{}\",\n     \"targetPath\": \"./.dev\",\n     \"permission\": \"420\"\n   }\n   ```\n   **Make sure to replace the placeholders**\n1. Send the payload to the provider:\n   ```shell\n   cat ./.dev/mount.json | grpcurl -unix -plaintext -proto ./.dev/service.proto -d @ ./spring-cloud-config.sock v1alpha1.CSIDriverProvider/Mount\n   ```\n1. Verify that the file has been created:\n   ```shell\n   cat ./.dev/application.yaml\n   # Should display YAML content\n   ```\n\n\n## Release\n\nFollow these steps to release a new version:\n\n1. Create a new release [via the GitHub UI](https://github.com/freenowtech/secrets-store-csi-driver-provider-spring-cloud-config/releases/new).\n2. Set `v0.x.y` as the tag and the release title.\n   \n   If the release contains at least one feature, increase `x` by one and set `y` to `0`.\n   \n   If the release contains bug fixes only, increase `y` by one.\n3. Let GitHub generate the release notes by clicking the \"Generate release notes\" button.\n4. Click the \"Publish release\" button.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreenowtech%2Fsecrets-store-csi-driver-provider-spring-cloud-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreenowtech%2Fsecrets-store-csi-driver-provider-spring-cloud-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreenowtech%2Fsecrets-store-csi-driver-provider-spring-cloud-config/lists"}