Skip to content
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

feat(events): add step to emit events to GCP #4901

Merged
merged 35 commits into from
May 6, 2024
Merged

feat(events): add step to emit events to GCP #4901

merged 35 commits into from
May 6, 2024

Conversation

CCFenner
Copy link
Member

@CCFenner CCFenner commented Apr 18, 2024

This adds functionality to emit events to GCP and exposes it as a pipeline step.

It makes use of the trust between Vault and GCP to send messages with a federated token. The messages contain data that follows the CloudEvents specification adapted to the SAP ecosystem and makes use of the cloudevents/sdk-go.

It currently implements pipelinerunStarted and pipelinerunFinishedevents.

CCFenner and others added 6 commits April 18, 2024 13:42
* add gcp token handling

* add initial step

* publish events

* add test cases

* fix test case

---------

Co-authored-by: Jordi van Liempt <[email protected]>
* test setup for generation of jwt token

* oidc token generator

* push new step files

* formatted code

* removed toolchain and jose

* removed toolchain:go 1.22.2

---------

Co-authored-by: jliempt <>
Co-authored-by: D071696 <[email protected]>
Co-authored-by: d071696 <[email protected]>
* add gcp token handling

* add initial step

* publish events

* add test cases

* fix test case

* move files

* add possible values

* handle start and end event

* add sap events

* dependencies

---------

Co-authored-by: Jordi van Liempt <[email protected]>
pkg/vault/client.go Outdated Show resolved Hide resolved
pkg/vault/client.go Outdated Show resolved Hide resolved
pkg/config/vault.go Outdated Show resolved Hide resolved
@CCFenner CCFenner marked this pull request as ready for review April 24, 2024 11:38
@CCFenner CCFenner requested a review from a team as a code owner April 24, 2024 11:38
pkg/gcp/pubsub.go Show resolved Hide resolved

// type EventType string

type EventData struct {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be removed, right?

@mscudlik
Copy link
Contributor

mscudlik commented May 2, 2024

It seems like it is not possible to provide any publishing options:

From my understanding at least the ordering key is required - this is also possible via rest:
https://cloud.google.com/pubsub/docs/publisher#rest_1

@CCFenner
Copy link
Member Author

CCFenner commented May 3, 2024

/go-it

@CCFenner
Copy link
Member Author

CCFenner commented May 3, 2024

/it-go

@CCFenner
Copy link
Member Author

CCFenner commented May 6, 2024

/it-go

Copy link

sonarcloud bot commented May 6, 2024

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarCloud

@jliempt jliempt merged commit 0f83941 into master May 6, 2024
13 checks passed
@jliempt jliempt deleted the events branch May 6, 2024 07:28
maxatsap pushed a commit to maxatsap/jenkins-library that referenced this pull request Jul 23, 2024
* feat(gcp): add step to send events to GCP (SAP#4896)

* add gcp token handling

* add initial step

* publish events

* add test cases

* fix test case

---------

Co-authored-by: Jordi van Liempt <[email protected]>

* feat(gcp): Generate and validate the GCP OIDC token (SAP#4899)

* test setup for generation of jwt token

* oidc token generator

* push new step files

* formatted code

* removed toolchain and jose

* removed toolchain:go 1.22.2

---------

Co-authored-by: jliempt <>
Co-authored-by: D071696 <[email protected]>
Co-authored-by: d071696 <[email protected]>

* feat(events): add pipeline start and end event (SAP#4900)

* add gcp token handling

* add initial step

* publish events

* add test cases

* fix test case

* move files

* add possible values

* handle start and end event

* add sap events

* dependencies

---------

Co-authored-by: Jordi van Liempt <[email protected]>

* log successful event publish

* remove dummy step

* prevent step from failing

* improve event creation

* improve event creation

* simplify eventing

* remove detailed events

* update parameter scope

* update go.sum

* fix test case

* add missing method

* refactor OIDC part

* add oidc.go to vault pkg

* mock OIDC token retrieval

* mock GCP functions

* update OIDC function name in Vault mocks

* get event data from CPE

* don't encode data payload in b64

* remove vault related changes

* remove vault changes from step code

* remove commented out code

* documentation/steps/gcpPublishEvent.md

* documentation/steps/gcpPublishEvent.md

* remove hardcoded eventData

* update roleID

* go generate

* add ordering key for pubsub event

---------

Co-authored-by: Jordi van Liempt <[email protected]>
Co-authored-by: D071696 <[email protected]>
Co-authored-by: d071696 <[email protected]>
Co-authored-by: jliempt <>
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.

3 participants