{"id":19277647,"url":"https://github.com/observiq/bindplane-op-action","last_synced_at":"2025-07-07T05:07:11.845Z","repository":{"id":218589181,"uuid":"746818695","full_name":"observIQ/bindplane-op-action","owner":"observIQ","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-10T21:23:20.000Z","size":155,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-06T19:50:32.095Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/observIQ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2024-01-22T18:27:10.000Z","updated_at":"2025-06-10T18:04:17.000Z","dependencies_parsed_at":"2024-01-29T16:09:27.030Z","dependency_job_id":"c77182e6-7631-4240-bd30-7050e30e62e2","html_url":"https://github.com/observIQ/bindplane-op-action","commit_stats":null,"previous_names":["jsirianni/bindplane-op-action"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/observIQ/bindplane-op-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observIQ%2Fbindplane-op-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observIQ%2Fbindplane-op-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observIQ%2Fbindplane-op-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observIQ%2Fbindplane-op-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/observIQ","download_url":"https://codeload.github.com/observIQ/bindplane-op-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/observIQ%2Fbindplane-op-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264016740,"owners_count":23544627,"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":[],"created_at":"2024-11-09T21:06:33.522Z","updated_at":"2025-07-07T05:07:11.827Z","avatar_url":"https://github.com/observIQ.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CI](https://github.com/observIQ/bindplane-op-action/actions/workflows/ci.yml/badge.svg)](https://github.com/observIQ/bindplane-op-action/actions/workflows/ci.yml)\n\n# bindplane-op-action\n\nThe Bindplane action can be used to deploy configurations to your Bindplane\nserver. It also supports exporting the OpenTelemetry configurations back to the repository.\n\n## Prerequisites\n\nBindplane requires a license. You can request a free license [here](https://observiq.com/download).\n\n## Configuration\n\n| Parameter                     | Default  | Description                                                                                                                                                                                                                              |\n| :---------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| bindplane_remote_url          | required | The endpoint that will be used to connect to BindPalne OP.                                                                                                                                                                               |\n| bindplane_api_key             |          | API key used to authenticate to Bindplane. Required when Bindplane multi account is enabled or when running on Bindplane Cloud                                                                                                           |\n| bindplane_username            |          | Username used to authenticate to Bindplane. Not required if API key is set.                                                                                                                                                              |\n| bindplane_password            |          | Password used to authenticate to Bindplane.                                                                                                                                                                                              |\n| target_branch                 | required | The branch that the action will use when applying resources to bindplane or when writing otel configs back to the repo.                                                                                                                  |\n| destination_path              | required | Path to the file which contains the Bindplane destination resources                                                                                                                                                                      |\n| source_path                   |          | Path to the file which contains the Bindplane source resources                                                                                                                                                                           |\n| processor_path                |          | Path to the file which contains the Bindplane processor resources                                                                                                                                                                        |\n| configuration_path            | required | Path to the file which contains the Bindplane configuration resources                                                                                                                                                                    |\n| enable_otel_config_write_back | `false`  | Whether or not the action should write the raw OpenTelemetry configurations back to the repository.                                                                                                                                      |\n| configuration_output_dir      |          | When write back is enabled, this is the path that will be written to.                                                                                                                                                                    |\n| configuration_output_branch   |          | The branch to write the OTEL configuration resources to. If unset, target_branch will be used.                                                                                                                                           |\n| token                         |          | The Github token that will be used to read and write to the repo. Usually secrets.GITHUB_TOKEN is sufficient. Requires the `contents.write` permission. Alternatively, you can set `github_url`, which should contain your access token. |\n| enable_auto_rollout           | `false`  | When enabled, the action will trigger a rollout for any configuration that has been updated.                                                                                                                                             |\n| tls_ca_cert                   |          | The contents of a TLS certificate authority, usually from a secret. See the [TLS](#tls) section.                                                                                                                                         |\n| github_url                    |          | Optional URL to use when cloning the repository. Should be of the form `\"https://{GITHUB_ACTOR}:{TOKEN}@{GITHUB_HOST}/{GITHUB_REPOSITORY}.git`. When set, `token` will not be used.                                                      |\n\n## Usage\n\n### Export Resources\n\nTo get started, you must handle exporting your existing resources to the repository. Use\nthe `bindplane get` commands with the `--export` flag.\n\n```bash\nbindplane get destination -o yaml --export \u003e destination.yaml\nbindplane get source -o yaml --export \u003e source.yaml\nbindplane get processor -o yaml --export \u003e processor.yaml\nbindplane get configuration -o yaml --export \u003e configuration.yaml\n```\n\nWith the resources exported to the repository, you can move on to configuring the action\nusing a new workflow.\n\n### Workflow\n\nThe following workflow can be used as an example. It uses the same file paths\ncreated in the [Export Resources](#export-resources) section.\n\nThis example will write the raw OTEL configurations back to the repository at the\npath `otel/` in branch `configuration_output_branch`.\n\n```yaml\nname: bindplane\n\non:\n  push:\n    branches:\n      - main\n\n# Write back requires access to the repo\npermissions:\n  contents: write\n\n# Run commits in order to prevent out of order write back commits.\nconcurrency:\n  group: ${{ github.head_ref || github.ref_name }}\n  cancel-in-progress: false\n\njobs:\n  bindplane:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - uses: observIQ/bindplane-op-action@main\n        with:\n          bindplane_remote_url: ${{ secrets.BINDPLANE_REMOTE_URL }}\n          bindplane_username: ${{ secrets.BINDPLANE_USERNAME }}\n          bindplane_password: ${{ secrets.BINDPLANE_PASSWORD }}\n          target_branch: main\n          destination_path: destination.yaml\n          configuration_path: configuration.yaml\n          enable_otel_config_write_back: true\n          configuration_output_dir: otel/\n          configuration_output_branch: otel\n          token: ${{ secrets.GITHUB_TOKEN }}\n          enable_auto_rollout: true\n```\n\nAfter the action is executed, you can expect to see OTEL configurations\nin the `otel/` directory of branch `configuration_output_branch`.\n\n```\notel\n├── k8s-cluster.yaml\n├── k8s-gateway.yaml\n└── k8s-node.yaml\n```\n\n### TLS\n\nTLS can be configured by setting `tls_ca_cert` to a secret that contains\nyour TLS certificate authority. This should be the contents of an x509 PEM\ncertificate, not a file path.\n\nThis example shows `tls_ca_cert` being set using a secret, and `bindplane_remote_url`\nusing a TLS endpoint (`https`).\n\n```yaml\n- uses: observIQ/bindplane-op-action@main\n  with:\n    tls_ca_cert: ${{ secrets.TLS_CA }}\n    bindplane_remote_url: https://bindplane.mycorp.net\n    bindplane_username: ${{ secrets.BINDPLANE_USERNAME }}\n    bindplane_password: ${{ secrets.BINDPLANE_PASSWORD }}\n    target_branch: main\n    destination_path: destination.yaml\n    configuration_path: configuration.yaml\n```\n\n### Progressive Rollouts\n\nThe action can be used to progress a rollout ad-hoc, without modifying\nconfigurations.\n\nTo trigger a rollout progression, format your commit message with `progress rollout \u003cname\u003e`.\n\nExample:\n\n```bash\ngit commit --allow-empty -m \"progress rollout my-config\"\n```\n\nThe commit message must match this regular expression:\n\n```\nprogress rollout (\\S+)$\n```\n\nTherefore the commit message can contain additional details, such as:\n\n```bash\ngit commit \\\n  --allow-empty \\\n  -m \"Trigger rollout for dev: progress rollout dev-config\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobserviq%2Fbindplane-op-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobserviq%2Fbindplane-op-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobserviq%2Fbindplane-op-action/lists"}