diff --git a/README.md b/README.md index 6b7f850..23b1059 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,42 @@ This code borrows from: - https://github.com/tektoncd/triggers/blob/v0.17.1/pkg/interceptors/server/server.go - https://github.com/tektoncd/triggers/blob/v0.17.1/pkg/interceptors/github/github.go +## Installation + +```sh +kubectl apply -f k8s.yaml +``` + +## Usage + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: webhook-secret +type: Opaque +stringData: + # openssl rand -base64 24 + sharedSecret: AZERTYUIOPazertyuiop01234567890= +--- +apiVersion: triggers.tekton.dev/v1beta1 +kind: Trigger +metadata: + name: trigger +spec: + interceptors: + - name: gitea + ref: + name: gitea + kind: ClusterInterceptor + apiVersion: triggers.tekton.dev + params: + - name: secretRef + value: + secretName: webhook-secret + secretKey: sharedSecret + - name: eventTypes + value: ["push"] + +[...] +``` diff --git a/k8s.yaml b/k8s.yaml new file mode 100644 index 0000000..40f7a7c --- /dev/null +++ b/k8s.yaml @@ -0,0 +1,106 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: gitea-interceptor + app.kubernetes.io/name: gitea-interceptor + name: gitea-interceptor + namespace: tekton-pipelines +spec: + progressDeadlineSeconds: 600 + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/name: gitea-interceptor + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + creationTimestamp: null + labels: + app: gitea-interceptor + app.kubernetes.io/name: gitea-interceptor + spec: + containers: + - command: + - /giteainterceptor + args: + - '-logtostderr' + - '-stderrthreshold' + - INFO + env: + - name: SYSTEM_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: CONFIG_LOGGING_NAME + value: config-logging-triggers + - name: CONFIG_OBSERVABILITY_NAME + value: config-observability-triggers + - name: METRICS_DOMAIN + value: tekton.dev/triggers + image: quay.io/itix/gitea-tekton-interceptor:latest + imagePullPolicy: IfNotPresent + name: tekton-triggers-gitea-interceptor + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: 8080 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - all + runAsGroup: 65532 + runAsUser: 65532 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + serviceAccount: tekton-triggers-core-interceptors + serviceAccountName: tekton-triggers-core-interceptors + terminationGracePeriodSeconds: 30 +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: gitea-interceptor + app.kubernetes.io/name: gitea-interceptor + name: gitea-interceptor + namespace: tekton-pipelines +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 8080 + selector: + app.kubernetes.io/name: gitea-interceptor + sessionAffinity: None + type: ClusterIP +--- +apiVersion: triggers.tekton.dev/v1alpha1 +kind: ClusterInterceptor +metadata: + name: gitea +spec: + clientConfig: + service: + name: gitea-interceptor + namespace: tekton-pipelines +