Azure-docs: The stub domain example returns validation errors

Created on 10 Apr 2019  Â·  14Comments  Â·  Source: MicrosoftDocs/azure-docs

@Lycrosa commented on Wed Apr 10 2019

first of all you cant apply it with the command you provided, second of all, if I apply it with kubectl apply -f coredns-custom.yaml I get a validation error


Dokumentdetails

⚠ Bearbeiten Sie diesen Abschnitt nicht. Er ist für die Verknüpfung von docs.microsoft.com zum GitHub-Artikel erforderlich.

assigned-to-author container-servicsvc doc-bug triaged

Most helpful comment

i'm running kubectl v1.13.4 against AKS 1.12.7 w/ this file and it works

kubectl apply -f test.json

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns-custom
  namespace: kube-system
data:
  test.server: |
    test1.com:53 {
        errors
        cache 1
        proxy . 10.100.10.18
    }
    test2.com:53 {
        errors
        cache 1
        proxy . 10.100.10.18
    }

All 14 comments

Hi team,
I'm moving this here since the user is reporting errors with the example
Kind regards,

Thanks for the feedback! We are currently investigating and will update you shortly.

@jnoller can you take a look at this one? When I apply the json I get an error as well

mimckitt@Azure:~$ kubectl apply configmap coredns-custom.json
Error: required flag(s) "filename" not set


Examples:
  # Apply the configuration in pod.json to a pod.
  kubectl apply -f ./pod.json

  # Apply the JSON passed into stdin to a pod.
  cat pod.json | kubectl apply -f -

  # Note: --prune is still in Alpha
  # Apply the configuration in manifest.yaml that matches label app=nginx and delete all the other resources that are not in the file and match label app=nginx.
  kubectl apply --prune -f manifest.yaml -l app=nginx

  # Apply the configuration in manifest.yaml and delete all the other configmaps that are not in the file.
  kubectl apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap

Available Commands:
  edit-last-applied Edit latest last-applied-configuration annotations of a resource/object
  set-last-applied  Set the last-applied-configuration annotation on a live object to match thecontents of a file.
  view-last-applied View latest last-applied-configuration annotations of a resource/object

Options:
      --all=false: Select all resources in the namespace of the specified resource types.
      --allow-missing-template-keys=true: If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.
      --cascade=true: If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController).  Default true.
      --dry-run=false: If true, only print the object that would be sent, without sending it.
  -f, --filename=[]: that contains the configuration to apply
      --force=false: Only used when grace-period=0. If true, immediately remove resources from API and bypass graceful deletion. Note that immediate deletion of some resources may result in inconsistency or data loss and requires confirmation.
      --grace-period=-1: Period of time in seconds given to the resource to terminate gracefully. Ignored if negative. Set to 1 for immediate shutdown. Can only be set to 0 when --force is true (force deletion).
      --include-uninitialized=false: If true, the kubectl command applies to uninitialized objects. If explicitly set to false, this flag overrides other flags that make the kubectl commands apply to uninitialized objects, e.g., "--all". Objects with empty metadata.initializers are regarded as initialized.
      --openapi-patch=true: If true, use openapi to calculate diff when the openapi presents and the resource can be found in the openapi spec. Otherwise, fall back to use baked-in types.
  -o, --output='': Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.
      --overwrite=true: Automatically resolve conflicts between the modified and live configuration by using values from the modified configuration
      --prune=false: Automatically delete resource objects, including the uninitialized ones, that do not appear in the configs and are created by either apply or create --save-config. Shouldbe used with either -l or --all.
      --prune-whitelist=[]: Overwrite the default whitelist with <group/version/kind> for --prune
      --record=false: Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record the command. If not set, default to updating the existing annotation value only if one already exists.
  -R, --recursive=false: Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory.
  -l, --selector='': Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -lkey1=value1,key2=value2)
      --server-dry-run=false: If true, request will be sent to server with dry-run flag, which means the modifications won't be persisted. This is an alpha feature and flag.
      --template='': Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview].
      --timeout=0s: The length of time to wait before giving up on a delete, zero means determine a timeout from the size of the object
      --validate=true: If true, use a schema to validate the input before sending it
      --wait=false: If true, wait for resources to be gone before returning. This waits for finalizers.

Usage:
  kubectl apply -f FILENAME [options]

Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).

required flag(s) "filename" not set

Here the error if you apply it as a yaml file with kubectl apply -f .corednsms.yaml
(I named the file differently, that shouldn't matter)

error: error validating ".\\corednsms.yaml": error validating data: ValidationError(ConfigMap.data): invalid type for io.k8s.api.core.v1.ConfigMap.data: got "string", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false

ran into the exact same issue yesterday, everything about the command in the doc above is wrong

the file needs to be rename to corednsms.json as well.

I will dig into the issues filed and work on a docs PR as soon as I free up from current tasks.

@bitsofinfo I ran it as json and as jaml. The error message stays the same:
kubectl apply -f .corednsms.json

error: error validating ".\\corednsms.json": error validating data: ValidationError(ConfigMap.data): invalid type for io.k8s.api.core.v1.ConfigMap.data: got "string", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false

I am by the way interested in the Stub domains part of the article and want to get an internal domain resolved in our AKS Cluster. Can anyone here tell me how to do so?

i'm running kubectl v1.13.4 against AKS 1.12.7 w/ this file and it works

kubectl apply -f test.json

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns-custom
  namespace: kube-system
data:
  test.server: |
    test1.com:53 {
        errors
        cache 1
        proxy . 10.100.10.18
    }
    test2.com:53 {
        errors
        cache 1
        proxy . 10.100.10.18
    }

This is working! Thank you very much! I also found out, that Kubernetes uses the DNS settings of the host if it can't resolve the name within its own DNS. So adding the DNS server to the VNET also works.

Just wanting to say that article hasn't been updated yet.

Correct

Adding the fixes and other bits to the doc today

PR is pending for the docs update

This PR has been merged.

@MicahMcKittrick-MSFT #please-close

Was this page helpful?
0 / 5 - 0 ratings

Related issues

spottedmahn picture spottedmahn  Â·  3Comments

paulmarshall picture paulmarshall  Â·  3Comments

spottedmahn picture spottedmahn  Â·  3Comments

DeepPuddles picture DeepPuddles  Â·  3Comments

JamesDLD picture JamesDLD  Â·  3Comments