Skip to content
This repository has been archived by the owner on Jun 4, 2024. It is now read-only.

Commit

Permalink
Merge branch 'master' into LG/pager-duty-ReadMe
Browse files Browse the repository at this point in the history
  • Loading branch information
lsgunn-teleport authored Oct 10, 2023
2 parents 7e2d833 + 46740d6 commit 73c0ea8
Show file tree
Hide file tree
Showing 21 changed files with 78 additions and 612 deletions.
18 changes: 9 additions & 9 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ steps:
- make lint

- name: Run tests
image: golang:1.21.1
image: golang:1.21.2
environment:
RUNNER_TEMP: /tmp
TELEPORT_ENTERPRISE_LICENSE:
Expand Down Expand Up @@ -66,7 +66,7 @@ workspace:

steps:
- name: Build artifacts
image: golang:1.21.1
image: golang:1.21.2
commands:
- make build-all

Expand Down Expand Up @@ -97,7 +97,7 @@ workspace:

steps:
- name: Build artifacts
image: golang:1.21.1
image: golang:1.21.2
commands:
- mkdir -p build/
- export PLUGIN_TYPE=$(echo ${DRONE_TAG} | cut -d- -f2)
Expand Down Expand Up @@ -311,7 +311,7 @@ workspace:

steps:
- name: Build artifacts
image: golang:1.21.1
image: golang:1.21.2
commands:
- mkdir -p build/
- go install github.com/konoui/lipo@latest
Expand Down Expand Up @@ -384,7 +384,7 @@ workspace:

steps:
- name: Build artifacts
image: golang:1.21.1
image: golang:1.21.2
commands:
- mkdir -p build/
- make OS=linux ARCH=amd64 release/event-handler
Expand Down Expand Up @@ -927,7 +927,7 @@ concurrency:

steps:
- name: Upload terraform provider to staging registry
image: golang:1.21.1
image: golang:1.21.2
commands:
- cd tooling
- |
Expand Down Expand Up @@ -985,7 +985,7 @@ concurrency:

steps:
- name: Upload terraform provider to staging registry
image: golang:1.21.1
image: golang:1.21.2
commands:
- cd tooling
- |
Expand Down Expand Up @@ -1043,7 +1043,7 @@ concurrency:

steps:
- name: Promote terraform provider to public registry
image: golang:1.21.1
image: golang:1.21.2
commands:
- cd tooling
- |
Expand Down Expand Up @@ -1081,6 +1081,6 @@ steps:
from_secret: PRODUCTION_TERRAFORM_REGISTRY_SIGNING_KEY
---
kind: signature
hmac: b81fb2f7c884dbd9afebb84942b6ff51c2779da1d9cae97d5d7ae58714a5aa2e
hmac: 00f66e92faf100b63e28b7a6465b3a1668bc4a1143017c060fb6e20c4007554d

...
4 changes: 2 additions & 2 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
- name: Checkout Teleport Plugins
uses: actions/checkout@v3

- name: Setup Go 1.21.1
- name: Setup Go 1.21.2
uses: actions/setup-go@v3
with:
go-version: '1.21.1'
go-version: '1.21.2'

- name: golangci-lint
uses: golangci/golangci-lint-action@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/terraform-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.21.1'
go-version: '1.21.2'

- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
Expand Down
37 changes: 2 additions & 35 deletions .github/workflows/unit-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,7 @@ env:
TELEPORT_ENTERPRISE_LICENSE: ${{ secrets.TELEPORT_ENTERPRISE_LICENSE }}

jobs:
# This test exists to ensure that we don't break compatibility of the event handler
# when we merge the unstructured events support.
# This is a temporary test and should be removed in Teleport 14.
# Since unstructured events API was intoduced in 13.1.0, this test fallbacks to
# the old SearchEvents and StreamSessionIDEvents API and should be able to complete
# without errors.
# DELETE IN 14.0.0
test-structured:
test:
name: Plugins Tests (Go)
runs-on: ubuntu-22.04-16core

Expand All @@ -32,33 +25,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.21.1'

- name: Install Teleport
uses: teleport-actions/setup@v1
with:
version: 14.0.0
enterprise: true

- name: Run unit tests
run: make test-unit

# This test uses the new auditlog service that supports unstructured events.
test-unstructured:
name: Plugins Tests (Go)
runs-on: ubuntu-22.04-16core

permissions:
contents: read

steps:
- name: Checkout Teleport Plugins
uses: actions/checkout@v3

- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.21.1'
go-version: '1.21.2'

- name: Install Teleport
uses: teleport-actions/setup@v1
Expand Down
63 changes: 20 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,35 @@
# Teleport Plugins and Example Applications
# Teleport plugins and example applications

A set of plugins for Teleport's for Access Workflows and example applications for Teleport Application Access.

[![Build Status](https://drone.platform.teleport.sh/api/badges/gravitational/teleport-plugins/status.svg)](https://drone.platform.teleport.sh/gravitational/teleport-plugins/)
Teleport plugins allow you to integrate the Teleport Access Platform and Teleport workflows with other tools you use to support your infrastructure.

For example, Teleport Access Request plugins enable you to integrate access requests for resources protected by Teleport with your organization's existing messaging and project management solutions, such as Slack, JIRA, and Mattermost.
If you have a self-hosted Teleport deployment, you can find information about configuring access request plugins in [Just-in-Time Access Request Plugins](https://goteleport.com/docs/access-controls/access-request-plugins/).

## Access API

The [access](./access) package exposes a simple API for managing access requests
which can be used for writing plugins. More info can be found in
[access/README.md](./access/README.md), including instructions on how to
properly provision necessary certificates.

### Slack

[See setup instructions on Teleport's website](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-slack/)

A basic slack plugin (WIP) can be found in [access/slack](./access/slack). The
plugin can be built with `make access-slack` and instructions for configuring
the plugin can be found in the plugin's [README](./access/slack/README.md).

### JIRA

[See setup instructions on Teleport's website](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-jira/)

A basic Teleport / JIRA integration (WIP) can be found in
[access/jira](./access/jira). The plugin can be built with `make access-jira`
and instructions for configuring the plugin can be found in the plugin's
[README](./access/jira/README.md).

### Mattermost

[See setup instructions on Teleport's website](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-mattermost/)

Mattermost is a private cloud messaging platform (think Slack for enterprise).
Teleport provides a Mattermost integration that supports request flows similar
to Slack integration above. The plugin can be built with
`make access-mattermost`, and instructions for configuring the plugin can be
found in the plugin's [README](./access/mattermost/README.md).
that can be used for writing plugins. You can find the current Teleport Access API in the main [Teleport repository](https://github.com/gravitational/teleport). For
more information, see [access/README.md](./access/README.md).

### PagerDuty
## Existing plugin guides

[See setup instructions on Teleport's website](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-pagerduty/)
The Teleport documentation includes access request plugins guides for integration
with the following solutions:

A Teleport integration with Pagerduty that allows your team to treat Teleport
permission requests as Pagerduty incidents, and provides Pagerduty special
actions to approve or deny permission requests. Run `make teleport-pagerduty` to
build it. More docs in the [README](./access/pagerduty/README.md).
- [Discord](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-discord/)
- [Email](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-email/)
- [JIRA](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-jira/)
- [Mattermost](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-mattermost/)
- [Microsoft Teams](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-msteams/)
- [PagerDuty](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-pagerduty/)
- [Slack](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-slack/)

## Event Handler

The [Teleport Event Handler Plugin](./event-handler) is used to export audit log events to a fluentd service. For more information, visit the Fluentd setup guide at [goteleport.com](https://goteleport.com/docs/management/export-audit-events/fluentd/) or checkout the [README](./event-handler/README.md).
The [Teleport Event Handler Plugin](./event-handler) is used to export audit log events to a `fluentd` service.
For more information, see [Fluentd](https://goteleport.com/docs/management/export-audit-events/fluentd/).

## Terraform Provider

The [Teleport Terraform Provider](./terraform) makes it easy to create resources using
Terraform. More info can be found in [terraform/README.md](./terraform/README.md).
The [Teleport Terraform Provider](./terraform) makes it easy to create resources using Terraform.
For more information, see [Terraform Provider]((https://goteleport.com/docs/setup/guides/terraform-provider/).
27 changes: 21 additions & 6 deletions access/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,26 @@
# Access Plugins
# Access request plugins

The various plugins within this directory allow teleport users the ability to intergrate access request notifications and approval workflows with third party technologies. They also serve as examples for building your own integration. For more information on the plugins available visit the `README.md` within each plugins respective directory.
The access request plugins in this directory allow Teleport users to integrate access request notifications and approval workflows with third party messaging, project management, and scheduling solutions. These plugins also serve as examples for building your own integration.
If you have a self-hosted Teleport deployment, you can find information for configuring these access
request plugins in [Just-in-Time Access Request Plugins](https://goteleport.com/docs/access-controls/access-request-plugins/).

For more information on Access Requests with Teleport, check out this [blog post](https://goteleport.com/blog/access-requests/)
For an overview of the complete workflow for access requests and how messaging, project management, and scheduling solutions integrate with Teleport, see the [Access Requests for Cloud Infrastructure](https://goteleport.com/blog/access-requests/) blog post.

### Access API
## Access API

The Teleport Access API has been moved into the main Teleport repo, and can be imported from `github.com/gravitational/teleport/api`. To see examples of how to get started with the Teleport API, take a look at our [go-client example](https://github.com/gravitational/teleport/tree/master/examples/go-client) or read the [API docs](https://goteleport.com/docs/api/introduction/).
The Teleport Access API has been moved into the main Teleport repository.
You can import it from `github.com/gravitational/teleport/api`. To see examples of how to get started with the Teleport API, see the [go-client example](https://github.com/gravitational/teleport/tree/master/examples/go-client) or read the [API docs](https://goteleport.com/docs/api/introduction/).
For more specific examples of how to build a custom access request workflow with the Teleport API, see [How to Build an Access Request Plugin](https://goteleport.com/docs/api/access-plugin/).

For more specific examples of how to manage workflows with the Teleport API, take a look at the [Plugin example](https://goteleport.com/docs/api/access-plugin/).
## Existing plugin guides

The Teleport documentation includes access request plugins guides for integration
with the following solutions:

- [Discord](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-discord/)
- [Email](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-email/)
- [JIRA](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-jira/)
- [Mattermost](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-mattermost/)
- [Microsoft Teams](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-msteams/)
- [PagerDuty](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-pagerduty/)
- [Slack](https://goteleport.com/docs/access-controls/access-request-plugins/ssh-approval-slack/)
2 changes: 1 addition & 1 deletion access/discord/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
VERSION=14.0.1
GO_VERSION=1.21.1
GO_VERSION=1.21.2

BUILDDIR ?= build
BINARY = $(BUILDDIR)/teleport-discord
Expand Down
Loading

0 comments on commit 73c0ea8

Please sign in to comment.