-
Notifications
You must be signed in to change notification settings - Fork 3
Improve README.md and the release.yml workflow
#13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
2136b88
893d716
24925b2
472f9cf
e463771
5a639a7
8aab37a
128f7f9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -59,7 +59,8 @@ jobs: | |
| - name: Push tag to remote | ||
| run: ./gradlew --console=colored pushRelease | ||
| shell: bash | ||
| - uses: aboutbits/github-actions-base/github-create-release@v2 | ||
| - name: Create GitHub Release | ||
| uses: aboutbits/github-actions-base/github-create-release@v2 | ||
| with: | ||
| tag-name: 'v${{ steps.nextVersion.outputs.version }}' | ||
| release-description: | | ||
|
|
@@ -70,6 +71,9 @@ jobs: | |
| helm install postgresql-operator https://github.com/${{ github.repository }}/releases/download/v${{ steps.nextVersion.outputs.version }}/postgresql-operator-${{ steps.nextVersion.outputs.version }}.tgz | ||
| ``` | ||
|
|
||
| With the Helm chart, the Custom Resource Definitions (CRDs) are installed automatically. | ||
| However, if you deploy the operator directly from the OCI image, the CRDs are not automatically applied and must be installed separately. | ||
|
|
||
| ### Manual CRD Installation | ||
| ```bash | ||
| kubectl apply -f https://github.com/${{ github.repository }}/releases/download/v${{ steps.nextVersion.outputs.version }}/clusterconnections.postgresql.aboutbits.it-v1.yml | ||
|
|
@@ -86,3 +90,11 @@ jobs: | |
| run: | | ||
| gh release upload v${{ steps.nextVersion.outputs.version }} operator/build/helm/kubernetes/*.tgz operator/build/kubernetes/*.postgresql.aboutbits.it-v1.yml | ||
| shell: bash | ||
| - name: Update README.md | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this also working as expected when the release is performed on another branch than the main branch?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See #13 (comment) Added the comment on the wrong review feedback comment. |
||
| run: | | ||
| sed -i "s|releases/download/v[0-9.]*/postgresql-operator-[0-9.]*.tgz|releases/download/v${{ steps.nextVersion.outputs.version }}/postgresql-operator-${{ steps.nextVersion.outputs.version }}.tgz|g" README.md | ||
|
ThoSap marked this conversation as resolved.
|
||
| git add README.md | ||
| # Guard against failing if there are no changes | ||
| git diff-index --quiet HEAD || git commit -m "Update README.md with version ${{ steps.nextVersion.outputs.version }}" | ||
|
ThoSap marked this conversation as resolved.
Outdated
ThoSap marked this conversation as resolved.
Outdated
|
||
| git push | ||
|
ThoSap marked this conversation as resolved.
|
||
| shell: bash | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -31,6 +31,18 @@ AboutBits PostgreSQL Operator is a Kubernetes operator that helps you manage Pos | |||||
| └──────────────────────────────────────────────────────────────────────────┘ | ||||||
| ``` | ||||||
|
|
||||||
| ## Installation | ||||||
|
|
||||||
| ### Helm Chart | ||||||
|
|
||||||
| ```bash | ||||||
| helm install postgresql-operator https://github.com/AboutBits/postgresql-operator/releases/download/v0.1.1/postgresql-operator-0.1.1.tgz | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This was technically right as the username is AboutBits, but URLs should preferably always be lowercase |
||||||
| ``` | ||||||
|
|
||||||
| With the Helm chart, the Custom Resource Definitions (CRDs) are installed automatically. | ||||||
| However, if you deploy the operator directly from the OCI image, the CRDs are not automatically applied and must be installed separately. | ||||||
| See the release notes for the [latest version](https://github.com/AboutBits/postgresql-operator/releases/latest) for more information. | ||||||
|
ThoSap marked this conversation as resolved.
Outdated
|
||||||
|
|
||||||
| ## Usage | ||||||
|
|
||||||
| This operator allows you to manage PostgreSQL resources using Kubernetes manifests. | ||||||
|
|
@@ -43,6 +55,29 @@ Further documentation of each Custom Resource can be found here: | |||||
| - [Grant](docs/grant.md) - Manage privileges. | ||||||
| - [DefaultPrivilege](docs/default-privilege.md) - Manage default privileges. | ||||||
|
|
||||||
| ### Declarative Management | ||||||
|
|
||||||
| The Operator leverages the power of Kubernetes Custom Resource Definitions (CRDs) to manage PostgreSQL resources declaratively. | ||||||
| This means the Operator continuously reconciles the state of the cluster to match your desired state defined in the CRs. | ||||||
|
|
||||||
| **Updates** | ||||||
|
|
||||||
| If you modify a mutable field in a Custom Resource, the Operator automatically applies these changes to the PostgreSQL cluster. This includes: | ||||||
|
|
||||||
| - Changing a `Role` flags, password or comment. | ||||||
|
ThoSap marked this conversation as resolved.
Outdated
|
||||||
| - Updating `Grant` objects or privileges. | ||||||
| - Changing a `Schema` or `Database` owner. | ||||||
| - Updating the `Role` password if the password in the referenced Secret changes. | ||||||
|
|
||||||
| **Deletions** | ||||||
|
|
||||||
| Deleting a Custom Resource triggers the cleanup of the corresponding PostgreSQL object: | ||||||
|
|
||||||
| - For `Grant`, `DefaultPrivilege`, and `Role` resources, the operator revokes privileges or drops the role. | ||||||
| - For `Database` and `Schema` resources, the behavior depends on the `reclaimPolicy` (defaulting to `Retain` to prevent accidental data loss). | ||||||
|
|
||||||
| This ensures that your PostgreSQL cluster configuration always reflects your Kubernetes manifests, simplifying management and automation. | ||||||
|
|
||||||
| ### Showcase | ||||||
|
|
||||||
| The following example shows how to set up a connection to a PostgreSQL cluster, create a database and schema, a login role (user), and configure permissions. | ||||||
|
|
@@ -212,6 +247,28 @@ make test | |||||
|
|
||||||
| Afterward, the project can be started in IntelliJ by navigating to `Run` -> `Run '...'`. | ||||||
|
|
||||||
| #### Generating jOOQ sources | ||||||
|
|
||||||
| To update the generated jOOQ sources from schema `pg_catalog`, you need to run the application in dev mode first to start the PostgreSQL Dev Service: | ||||||
|
|
||||||
| ```bash | ||||||
| make run | ||||||
|
|
||||||
| # or | ||||||
|
|
||||||
| ./gradlew :operator:quarkusDev | ||||||
| ``` | ||||||
|
|
||||||
| Once the application is running (and the database is available on port 5432), run the following command: | ||||||
|
|
||||||
| ```bash | ||||||
| make generate-jooq | ||||||
|
|
||||||
| # or | ||||||
|
|
||||||
| ./gradlew :generated:jooqCodegen | ||||||
| ``` | ||||||
|
|
||||||
| ### Docker Environment | ||||||
|
|
||||||
| See [Docker Environment](docs/docker-environment.md) for setting up a local development environment using Quarkus Dev Services. | ||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a minor thing, but I had the rule of thumb that I only provide a message when I don't use another action. Because the action itself has then the different steps descriped. I would follow this rule. Can you please adjust it also for the other steps in this project?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I don't see why this should not work on other branches.
But we usually should only run the release.yml Workflow only against
main.We could add something like
so the release workflow only runs against
main.The
build-and-releasestage depends ontest, so the whole build would fail.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done