Welcome to the Linux Foundation Forum!

calico.yaml error

I am in lab 3.1 and I ran kubectl apply -f calico.yaml and I get this error:

error: error parsing calico.yaml: error converting YAML to JSON: yaml: line 182: did not find expected '-' indicator

I did some troubleshooting:
a. line 182 looks like the lines above and below it: type: object
b. I ran the calico.yaml that i downloaded on the master node through http://www.yamllint.com/ and that reports valid
c. I did some googling on the error and only found a similar bug with a different line: https://github.com/projectcalico/calico/issues/707
d. I tried to find a calico validation tool on the calico website and there is a command line tool for calico but it does not have a validator or syntax checking service.

any ideas on how to proceed?

Comments

  • Hi, i found the problem to be the indentation in the yaml of the -name and value, they were not indented properly:
    # The default IPv4 pool to create on startup if none exists. Pod IPs will be
    # chosen from this range. Changing this value after installation will have
    # no effect. This should fall within --cluster-cidr.
    - name: CALICO_IPV4POOL_CIDR
    value: "192.168.0.0/16"

  • serewicz
    serewicz Posts: 1,000

    Hello,

    Thank you for the feedback. As you should be downloading the calico file from the source, please let the projectcalico.org folks know of the issue. Typically they remedy the error quickly.

    Regards,

  • chrispokorni
    chrispokorni Posts: 2,341

    Hi @catorarn,

    The newer calico file when downloaded, has both -name and value lines commented out. You can leave them commented out, they will work as expected.

    Regards,
    -Chris

  • Hi Chris, I faced the same error and fixed by indenting. Later I read you response for not to uncomment these lines. Any issue If I uncomment these lines and fixed the indention

  • mikerossiter
    mikerossiter Posts: 21
    edited May 2021

    Ignore this. Had the same issue then realised it was the indentation issue that was mentioned in the first response. Thanks for that!

  • cwatkins
    cwatkins Posts: 1
    edited June 2021

    @serewicz said:
    Hello,

    Thank you for the feedback. As you should be downloading the calico file from the source, please let the projectcalico.org folks know of the issue. Typically they remedy the error quickly.

    Regards,

    Hi, I just stumbled upon this conversation after seeing the same error. The file as delivered works just fine. It's actually the next part of the instructions for exercise 3.1 which induces the error, if you botch the indents. Perhaps a clarification here, to be careful with the indents? Or remove this step, if it's really not necessary? The instructions technically don't say to edit the file, but they do say to avoid conflicts with existing networks. And the example shown has been uncommented. Item 6 in the screenshot below:

  • serewicz
    serewicz Posts: 1,000

    Hello,

    You will note the command used is "less", a paginator which does not edit the file. If one had happened to choose 192.168 for their VM IP range they would have issues, which is why the step exists. There is no direction to edit. Download the file and look at it. Then use it.

    Regards,

  • enderst
    enderst Posts: 1

    @serewicz said:
    Hello,

    You will note the command used is "less", a paginator which does not edit the file. If one had happened to choose 192.168 for their VM IP range they would have issues, which is why the step exists. There is no direction to edit. Download the file and look at it. Then use it.

    Regards,

    That may be, but your example shows the lines not commented out. I'm sure everyone went down the same rabbit hole like I just did and tried to make our files look like your example.

  • hi! Thanks for posting this. I've the same issue uncommenting the CALICO_IPV4POOL_CIDR section. The value is still bad indented. now is working with my chosen network

  • Sorry for commenting on old thread but encountering same issue here while trying to run a command kubectl apply -f calico.yaml

    getting an error:

    error: error parsing calico.yaml: error converting YAML to JSON: yaml: line 182: did not find expected key

    If I look at my calico.yaml contents then it has like below:

    # no effect. This should fall within --cluster-cidr.
    - name: CALICO_IPV4POOL_CIDR
    value: "192.168.0.0/16"

    Could someone help me and share how it should look after edit?

    Thanks!
    Gaurav

  • never mind ended up specifying the url instead of file we had downloaded in the process.

  • jooiongen
    jooiongen Posts: 2
    edited July 2023

    This is still an issue. I do have 192.168.x.x as my local network, thus I need to set a value here. The text could have been made clearer. One really needs to think to get grasp of the message in the text.

    Now I just have to figure out what is the correct indent.

    Edit: For me vim was removing a space in my indent. That is, if i did "sudo -i" and looked at the file everything was ok. But when I exited out from that shell in to the regular shell there was a space extra on the two uncommented lines.

    This is on Debian 11 Bullseye

Categories

Upcoming Training