Skip to content

feat: support mattermost notifications integration#261

Closed
BoxBoxJason wants to merge 1 commit intocrossplane-contrib:masterfrom
BoxBoxJason:feat/support-mattermost-integration
Closed

feat: support mattermost notifications integration#261
BoxBoxJason wants to merge 1 commit intocrossplane-contrib:masterfrom
BoxBoxJason:feat/support-mattermost-integration

Conversation

@BoxBoxJason
Copy link
Contributor

@BoxBoxJason BoxBoxJason commented Dec 23, 2025

The goal of this PR is to add the support of the project level mattermost integration configuration, similar to what the terraform provider does.

I recommend a squash merge type to keep a clean history and a single commit for this feature

Refs #250

I have:

  • Read and followed Crossplane's [contribution process].
  • Run make reviewable to ensure this PR is ready for review.
  • Run Integration Tests to check that the feature works as expected

How has this code been tested

  • I have a self hosted gitlab instance in my homelab (I can share the link with reviewers if required)
  • I don't use docker (and I don't have it installed), instead I use podman on my Fedora 43 (Workstation) machine
  • I setup a kind cluster with the KIND_EXPERIMENTAL_PROVIDER=podman, using kind create cluster --name gitlab
  • I install the crossplane helm chart
    1. helm repo add crossplane-stable https://charts.crossplane.io/stable
    2. helm install crossplane --namespace crossplane-system --create-namespace crossplane-stable/crossplane
  • I build the go code make go.build and then run it ./_output/bin/linux_amd64/provider --debug
  • I create the secret with my PAT (admin permissions) k create secret generic gitlab-credentials -n crossplane-system --from-literal=token=EXAMPLE_VALUE
  • I apply the providerconfig manifest:
    apiVersion: gitlab.m.crossplane.io/v1beta1
    kind: ProviderConfig
    metadata:
      name: gitlab-provider
      namespace: default
    spec:
      baseURL: https://REDACTED_URL/
      credentials:
        source: Secret
        method: PersonalAccessToken
        secretRef:
          namespace: crossplane-system
          name: gitlab-credentials
          key: token
  • I apply the examples/projects/integration_mattermost.yaml
  • I check that parameters are applied and no errors appears.
  • I update the CRD with new values and check again for errors / that they are applied. This is currently non functionnal, as there is no way to toggle the active status using the current client-go SDK
  • I update the integration manually and confirm that they are reconciled. This is currently non functionnal, as there is no way to toggle the active status using the current client-go SDK
  • I delete the resource and check that nothing new happens, the resource gets deleted properly (even though it does not do anything for this resource). This is currently non functionnal, as there is no way to toggle the active status using the current client-go SDK

@BoxBoxJason
Copy link
Contributor Author

This won't work until the client-go (gitlab sdk) version is upgraded

Signed-off-by: BoxBoxJason <contact@boxboxjason.dev>
@BoxBoxJason BoxBoxJason force-pushed the feat/support-mattermost-integration branch from 465405c to 9b21aa8 Compare December 23, 2025 16:59
@henrysachs
Copy link
Collaborator

This won't work until the client-go (gitlab sdk) version is upgraded

I think we should do that in a separate PR and do extensive testing. I will try to get something together for this.

@BoxBoxJason
Copy link
Contributor Author

Closing as this is integrated in #268

@BoxBoxJason BoxBoxJason closed this Feb 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants