First time creating a pipeline in Google Cloud Platform.
I have been following their guide, and the last step I want to set the build container into Kubernetes cluster.
This is my yaml file that is failling in the last step.
steps:
  # This steps clone the repository into GCP
  - name: gcr.io/cloud-builders/git
    args: ['clone', 'https://<user>:<password>@github.com/PatrickVibild/scrappercontroller']
  # This step runs the unit tests on the app
  - name: 'docker.io/library/python:3.7'
    id: Test
    entrypoint: /bin/sh
    args:
      - -c
      - 'pip install -r requirements.txt && python -m pytest app/tests/**'
  #This step creates a container and leave it on CloudBuilds repository.
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/abiding-robot-255320/scrappercontroller', '.']
  #Adds the container to Google container registry as an artefact
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'gcr.io/abiding-robot-255320/scrappercontroller']
  #Uses the container and replaces the existing one in Kubernetes
  - name: 'gcr.io/cloud-builders/kubectl'
    args: ['set', 'image', 'deployment/scrapper-config', 'scrappercontroller=gcr.io/abiding-robot-255320/scrappercontroller']
    env:
      - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
      - 'CLOUDSDK_CONTAINER_CLUSTER=n1scrapping'I have been using GCP guideline
- name: 'gcr.io/cloud-builders/kubectl'
  args: ['set', 'image', 'deployment/myimage', 'frontend=gcr.io/myproject/myimage']
  env:
  - 'CLOUDSDK_COMPUTE_ZONE=us-east1-b'
  - 'CLOUDSDK_CONTAINER_CLUSTER=node-example-cluster'But I dont know what do I have to replace in the last argument. frontend=gcr.io/myproject/myimage in my case.
Also my intention is to replace the container that is running on kubernetes, if this help identifying any issues.
Thanks for any help!
I'm going to guess from the title you're seeing a message like this in your CloudBuild logs:
+ kubectl set image deployment/scrapper-config scrappercontroller=gcr.io/abiding-robot-255320/scrappercontroller
error: unable to find container named "scrappercontroller"I dont know what do I have to replace in the last argument.
frontend=gcr.io/myproject/myimagein my case.
The meaning of this argument is <container_name>=<image_ref>.
You're setting this value to scrappercontroller=gcr.io/abiding-robot-255320/scrappercontroller.
That means: "set the image for the 'scrappercontroller' container in my Pods to this image from GCR".
You can learn more about this by running kubectl set image --help:
Update existing container image(s) of resources.
 Possible resources include (case insensitive):
  pod (po), replicationcontroller (rc), deployment (deploy), daemonset (ds), replicaset (rs)
Examples:
  # Set a deployment's nginx container image to 'nginx:1.9.1', and its busybox container image to 'busybox'.
  kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
  # Update all deployments' and rc's nginx container's image to 'nginx:1.9.1'
  kubectl set image deployments,rc nginx=nginx:1.9.1 --all
  # Update image of all containers of daemonset abc to 'nginx:1.9.1'
  kubectl set image daemonset abc *=nginx:1.9.1
  # Print result (in yaml format) of updating nginx container image from local file, without hitting the server
  kubectl set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yamlYou're working with a Deployment object. Deployments create Pods using their spec.template.
Pods can have multiple containers, and each one will have a name.
This command will show you your container names for the Pods in your Deployment:
kubectl get --output=wide deploy/scrapper-configHere's an example of a Deployment that creates Pods with two containers: "myapp" and "cool-sidecar". (See the CONTAINERS column.)
kubectl get --output=wide deploy/myapp
NAME    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS           IMAGES        SELECTOR
myapp   1/1     1            0           10m   myapp,cool-sidecar   nginx,nginx   run=myappYou can use that container name in your final argument:
'my-container-name=gcr.io/abiding-robot-255320/scrappercontroller'You can also just use a wildcard(*) if your Pods only have a single container each:
'*=gcr.io/abiding-robot-255320/scrappercontroller'Hopefully that helps