GitXplorerGitXplorer
d

chains

public
2 stars
2 forks
1 issues

Commits

List of commits on branch master.
Unverified
640984e1d55dca954f1e339ff1f6e9ee77861c5f

Fix clientset retrieval.

ddlorenc committed 4 years ago
Unverified
9c376c0598ee8264a9adef48b3d1efd04e56fe11

Vendor and pick up changes.

ddlorenc committed 4 years ago
Unverified
96b14ab649f0c1e25b74bc61d1e99ebcec363976

Update knative.dev/pkg

ddlorenc committed 4 years ago
Unverified
36d064fae1c7175c8a8e0ba0083d02d3c6848993

Merge branch 'master' of github.com:dlorenc/chains

ddlorenc committed 4 years ago
Unverified
d94d02a7c873721f3ae52f7d7aa925337f286d07

In Toto

ddlorenc committed 4 years ago
Verified
b3aded51fa1ddab8a1d3b1778b24356935d5401a

Merge pull request #3 from mpeters/master

ddlorenc committed 4 years ago

README

The README file for this repository.

Tekton Chains

Installation

  1. Make sure you install Tekton Pipelines first!

  2. Install Chains with: ko apply -f config/

Usage

To get started, you first have to generate a GPG keypair to be used by your Tekton system. There are many ways to go about this, but you can usually use something like this:

gpg --gen-key

Enter a passprase (make sure you remember it!) and a name for the key.

Next, you'll need to upload the private key as a Kubernetes Secret so Tekton can use it to sign. To do that, export the secret key and base64 encode it:

gpg --export-secret-key --armor $keyname | base64

And set that as the key private in the Secret signing-secrets:

kubectl edit secret signing-secrets -n tekton-pipelines

Do the same for your passphrase, remembering to remove any unnecessary whitespace and base64 encode it:

echo -n 'mypassword' | base64

And set that as the key passphrase in the Secret signing-secrets:

kubectl edit secret signing-secrets -n tekton-pipelines

Verification

Assuming you have the keys loaded into GPG on your system (you should if you created them earlier), you can retrieve the signature and payload using kubectl to verify them.

Run some task in Tekton that will create a TaskRun object. An example might be the clustertask-pipelinerun example from the pipelines project:

kubectl apply -f examples/v1beta1/pipelineruns/clustertask-pipelinerun.yaml

Then the body and signature of that run will be attached to the object's annotations.

They are stored in annotations on the TaskRun.

kubectl get taskrun $taskrun -o=json | jq -r .items[0].metadata.annotations.body | base64 --decode > body
kubectl get taskrun $taskrun -o=json | jq -r .items[0].metadata.annotations.signed > signature

Then verify them again with gpg:

gpg --verify signature body