shipwright-io / build

Shipwright - a framework for building container images on Kubernetes
https://shipwright.io
Apache License 2.0
643 stars 110 forks source link

Following quickstart docs: Standalone BuildRun no status #1198

Open agardnerIT opened 1 year ago

agardnerIT commented 1 year ago

Hi all, trying to get up and running with Shipwright and following the install docs. Here's what I've done on a vanilla k8s 1.26 cluster:

export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.27.0
curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_linux_amd64
chmod +x operator-sdk_linux_amd64 && sudo mv operator-sdk_linux_amd64 /usr/local/bin/operator-sdk
operator-sdk olm install

# Install operator
kubectl apply -f https://operatorhub.io/install/shipwright-operator.yaml

# Wait for all pods
kubectl -n olm get pods
kubectl -n operators get pods

# Create ShipwrightBuild operator
cat << EOF > shipwright-operator.yaml
---
apiVersion: operator.shipwright.io/v1alpha1
kind: ShipwrightBuild
metadata:
  name: shipwright-operator
spec:
  targetNamespace: shipwright-build
EOF
kubectl apply -f shipwright-operator.yaml

# Wait for operator to start
kubectl -n shipwright-build get pods

# Install build strategies
kubectl apply -f https://github.com/shipwright-io/build/releases/download/v0.10.0/sample-strategies.yaml

# Create a BuildRun
cat << EOF > buildrun.yaml
apiVersion: shipwright.io/v1alpha1
kind: BuildRun
metadata:
  name: standalone-buildrun
spec:
  buildSpec:
    source:
      url: https://github.com/shipwright-io/sample-go.git
      contextDir: source-build
    strategy:
      kind: ClusterBuildStrategy
      name: buildpacks-v3
    output:
      image: foo/bar:latest
EOF
kubectl apply -f buildrun.yaml

Get BuildRuns

When I do kubectl get buildruns I see:

$ kubectl get buildruns
NAME                  SUCCEEDED   REASON   STARTTIME   COMPLETIONTIME
standalone-buildrun  

Build Logs

$ kubectl -n shipwright-build logs -l name=shipwright-build
{"level":"info","ts":1675994184.7020156,"logger":"controller.buildrun-controller","msg":"the annotation build.shipwright.io/verify.repository is set to , nothing to do","name":"standalone-buildrun","namespace":"default","namespace":"default","name":""}
{"level":"info","ts":1675994184.7034838,"logger":"controller.buildrun-controller","msg":"updating BuildRun status","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun"}
{"level":"info","ts":1675994184.821321,"logger":"controller.buildrun-controller","msg":"falling back to default serviceAccount","name":"standalone-buildrun","namespace":"default","namespace":"default"}
{"level":"debug","ts":1675994184.8217134,"logger":"controller.buildrun-controller","msg":"retrieving ClusterBuildStrategy","name":"standalone-buildrun","namespace":"default","namespace":"default","name":""}
{"level":"info","ts":1675994184.8219895,"logger":"controller.buildrun-controller","msg":"creating TaskRun from BuildRun","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun-","BuildRun":"standalone-buildrun"}
{"level":"info","ts":1675994184.8336775,"logger":"controller.buildrun-controller","msg":"updating BuildRun status with TaskRun name","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun","TaskRun":"standalone-buildrun-gbxmd"}
{"level":"debug","ts":1675994184.8432837,"logger":"controller.buildrun-controller","msg":"finishing reconciling request from a BuildRun or TaskRun event","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun"}
{"level":"debug","ts":1675994184.8435676,"logger":"controller.buildrun-controller","msg":"starting reconciling request from a BuildRun or TaskRun event","name":"standalone-buildrun-gbxmd","namespace":"default","namespace":"default","name":"standalone-buildrun-gbxmd"}
{"level":"info","ts":1675994184.8441417,"logger":"controller.buildrun-controller","msg":"taskRun already exists","name":"standalone-buildrun-gbxmd","namespace":"default","namespace":"default","name":"standalone-buildrun-gbxmd"}
{"level":"debug","ts":1675994184.8443153,"logger":"controller.buildrun-controller","msg":"finishing reconciling request from a BuildRun or TaskRun event","name":"standalone-buildrun-gbxmd","namespace":"default","namespace":"default","name":"standalone-buildrun-gbxmd"}
controlplane $ kubectl -n shipwright-build logs -l name=shipwright-build
{"level":"info","ts":1675994184.7020156,"logger":"controller.buildrun-controller","msg":"the annotation build.shipwright.io/verify.repository is set to , nothing to do","name":"standalone-buildrun","namespace":"default","namespace":"default","name":""}
{"level":"info","ts":1675994184.7034838,"logger":"controller.buildrun-controller","msg":"updating BuildRun status","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun"}
{"level":"info","ts":1675994184.821321,"logger":"controller.buildrun-controller","msg":"falling back to default serviceAccount","name":"standalone-buildrun","namespace":"default","namespace":"default"}
{"level":"debug","ts":1675994184.8217134,"logger":"controller.buildrun-controller","msg":"retrieving ClusterBuildStrategy","name":"standalone-buildrun","namespace":"default","namespace":"default","name":""}
{"level":"info","ts":1675994184.8219895,"logger":"controller.buildrun-controller","msg":"creating TaskRun from BuildRun","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun-","BuildRun":"standalone-buildrun"}
{"level":"info","ts":1675994184.8336775,"logger":"controller.buildrun-controller","msg":"updating BuildRun status with TaskRun name","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun","TaskRun":"standalone-buildrun-gbxmd"}
{"level":"debug","ts":1675994184.8432837,"logger":"controller.buildrun-controller","msg":"finishing reconciling request from a BuildRun or TaskRun event","name":"standalone-buildrun","namespace":"default","namespace":"default","name":"standalone-buildrun"}
{"level":"debug","ts":1675994184.8435676,"logger":"controller.buildrun-controller","msg":"starting reconciling request from a BuildRun or TaskRun event","name":"standalone-buildrun-gbxmd","namespace":"default","namespace":"default","name":"standalone-buildrun-gbxmd"}
{"level":"info","ts":1675994184.8441417,"logger":"controller.buildrun-controller","msg":"taskRun already exists","name":"standalone-buildrun-gbxmd","namespace":"default","namespace":"default","name":"standalone-buildrun-gbxmd"}
{"level":"debug","ts":1675994184.8443153,"logger":"controller.buildrun-controller","msg":"finishing reconciling request from a BuildRun or TaskRun event","name":"standalone-buildrun-gbxmd","namespace":"default","namespace":"default","name":"standalone-buildrun-gbxmd"}

Namespaces

$ kubectl get ns
NAME               STATUS   AGE
default            Active   14d
kube-node-lease    Active   14d
kube-public        Active   14d
kube-system        Active   14d
olm                Active   13m
operators          Active   13m
shipwright-build   Active   8m55s
tekton-pipelines   Active   10m

Docker Output

docker images shows nothing

Tekton Pipelines Output

$ kubectl -n tekton-pipelines get all
NAME                                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/tekton-pipelines-controller   ClusterIP   10.109.234.138   <none>        9090/TCP,8008/TCP,8080/TCP   10m

Did it work? Am I missing something in my understanding or is it broken?

qu1queee commented 1 year ago

Hi @agardnerIT , thanks for reaching out. Let me take a look in detail, I would like to reproduce this first before providing you any guidance.

qu1queee commented 1 year ago

@agardnerIT I reproduced your issue, it seems related to the version of your cluster and the Tekton version that the Shipwright operator tries to install. There seems to be an issue here where the Tekton components(controller and webhook pod) never get deployed in the cluster. I will open an issue in our side to tackle this via the operator. In the meantime, you have the following options: