Release v0.3
This is the v0.3 release of the samba-operator project. The samba-operator aims to be a convenient way to manage Samba based SMB shares within a Kubernetes cluster. The project provides a samba-operator OCI container image as well as YAML to serve as the basis of an example deployment.
The developers of the samba-operator project are happy to establish our latest release. While the samba-opeator is still a fairly young project we think it's stable enough to see wider adoption. To report bugs, ask questions, make comments, or particpate in development please visit our project repository at https://github.com/samba-in-kubernetes/samba-operator.
Highlights
- SMB Metrics support for server pods on OpenShift
- Dynamic updates to basic share configuration parameters
- Add feature to host multiple shares through one server pod
- Add ability to specify server pod nodeSelector and affinity values
What's Changed
- makefile: minor fixes needed to match planned tagging format by @phlogistonjohn in #215
- docs: add presentation from sambaXP 2022 by @phlogistonjohn in #217
- Integration test organizational cleanups by @phlogistonjohn in #223
- OpenShift with Metrics by @synarete in #216
- More integration test organizational cleanups by @phlogistonjohn in #224
- integration test: use unique names for SmbShare resources by @phlogistonjohn in #225
- Integration tests: improve smbclient login test by @phlogistonjohn in #227
- smbcc: Add 'dos charset' option to Global smb.conf defaults by @anoopcs9 in #229
- Fix uses of smbclient before waiting for login OK by @phlogistonjohn in #231
- integration tests: use wait-loop to check resources cleanup by @synarete in #232
- controllers: cache cluster-type in memory to avoid redundant calls by @synarete in #228
- resources: add a volKeeper type for wrangling volumes by @phlogistonjohn in #179
- support configuration changes by @phlogistonjohn in #233
- Image pull policy by @synarete in #213
- Add comments to some packages by @phlogistonjohn in #239
- Break Update reconcile function into smaller parts by @phlogistonjohn in #235
- dockerfile: use ubi9 as base image by @synarete in #241
- explicit tools versions by @synarete in #248
- planner: fixed set-but-not-used assignment by @synarete in #247
- controllers: removed unused Scheme field by @synarete in #244
- tests: Raise timeout for clustered test runs by @anoopcs9 in #254
- tests/integration: Fix flaky
TestScaleoutClusterSuite
by @anoopcs9 in #242 - controllers: set controller watches on owned configmaps & statefulsets by @phlogistonjohn in #250
- tests/integration: Fix issues reported by
gofmt
by @anoopcs9 in #243 - Go version >= 1.17 by @synarete in #253
- Lint code using gosec by @synarete in #255
- resources: fix config update container creating missing share dirs by @phlogistonjohn in #251
- planner: fixes and tests for configuration update by @phlogistonjohn in #249
- tests: raise timeout of non-clustered tests to 20m by @phlogistonjohn in #259
- golangci-list: disable deprecated linters by @phlogistonjohn in #261
- planner: add functions to check if smbshares are compatible by @phlogistonjohn in #260
- planner: add Prune function to remove shares by @phlogistonjohn in #258
- workflows: use checkout@v3 and setup-go@v3 by @synarete in #263
- grouped shares: hosting multiple shares in one server instance by @phlogistonjohn in #240
- resources: fixed confusing if-else-if patterns by @synarete in #264
- docs: Doc update part 1 by @phlogistonjohn in #266
- Update port list for samba-ad deployment by @spuiuk in #267
- Fix missing colon in YAML examples in
howto.md
by @yardenshoham in #270 - Style code blocks as YAML in
howto.md
by @yardenshoham in #271 - integration tests: test SmbShares enabling grouping and clustering by @phlogistonjohn in #265
- github:add mergify configuration by @obnoxxx in #275
- github: fix indentation in mergify config yaml by @phlogistonjohn in #278
- dockerfile: add image annotations by @synarete in #277
- makefile: run gitlint via make rule by @synarete in #280
- makefile: allow override KUBECTL_CMD by @synarete in #279
- github: Update CentOS CI status check for Mergify by @anoopcs9 in #285
- build(deps): bump github.com/prometheus/client_golang from 1.11.0 to 1.11.1 by @dependabot in #282
- tests/centosci: Update kindest/kindnetd image versions by @anoopcs9 in #284
- add default node selector value and configuration by @phlogistonjohn in #286
- build: Bump minimum Go version to 1.18 by @anoopcs9 in #287
- build(deps): bump golang.org/x/text from 0.3.6 to 0.3.8 by @dependabot in #289
- build(deps): bump golang.org/x/net from 0.0.0-20210520170846-37e1c6afe023 to 0.7.0 by @dependabot in #290
- Deploy on OpenShift with dedicated SCC by @synarete in #293
- docs: openshift+crc howto by @synarete in #295
- github: tweak how mergify rules handle aged PRs by @phlogistonjohn in #296
- Support specifying nodeSelector and affinity values in SmbCommonConfig to control pod scheduling by @phlogistonjohn in #291
- Revisit running gitlint in the CI by @phlogistonjohn in #298
- github: Update CentOS CI check in mergify rules by @anoopcs9 in #305
- Add a doc with CentOS CI testing commands by @anoopcs9 in #303
- resources: refine get-create logic for openshift elems by @synarete in #308
- docs: contribution guide by @synarete in #302
- tests/centosci: Increase disk size of minikube VMs by @anoopcs9 in #310
- go.mod: upgrade to newer versions by @synarete in #307
New Contributors
- @yardenshoham made their first contribution in #270
- @dependabot made their first contribution in #282
Full Changelog: v0.2...v0.3
Download
The samba-operator image can be acquired from the quay.io image registry:
- By tag: quay.io/samba.org/[email protected]
- By digest: quay.io/samba.org/samba-operator@sha256:86d7d065d723e35d7da6301c6f79901af61ef5ae88baa8f724c09215c0a1ee51
Deploying the operator
This operator can be deployed using the example file samba-operator-v0.3-default.yaml file, attached to this release. Example:
kubectl apply -f samba-operator-v0.3-default.yaml
This is equivalent to checking out the v0.3 tag from the git repository and using the default configuration. Example:
git clone -b v0.3 https://github.com/samba-in-kubernetes/samba-operator
cd samba-operator
kubectl apply -k config/default