Home > other >  How to write YAML array? error: error validating "aws-rds.yaml"
How to write YAML array? error: error validating "aws-rds.yaml"

Time:08-04

I am using Crossplane and AWS. when I go for

kubectl apply -f aws-rds.yaml

got error

dbsubnetgroup.database.aws.crossplane.io/prod-subnet-group unchanged
error: error validating "aws-rds.yaml": error validating data: ValidationError(RDSInstance.spec.forProvider.vpcSecurityGroupIDRefs): invalid type for io.crossplane.aws.database.v1beta1.RDSInstance.spec.forProvider.vpcSecurityGroupIDRefs: got "map", expected "array"

Yaml file

apiVersion: database.aws.crossplane.io/v1beta1
kind: RDSInstance
metadata:
  name: production-rds
spec:
  forProvider:
    allocatedStorage: 50
    autoMinorVersionUpgrade: true
    applyModificationsImmediately: false
    backupRetentionPeriod: 0
    caCertificateIdentifier: rds-ca-2019
    copyTagsToSnapshot: false
    dbInstanceClass: db.t2.small
    dbSubnetGroupName: prod-subnet-group 
    vpcSecurityGroupIDRefs:
           name: ["rds-access-sg"]

If I change to what @gohm'c suggested i got error again

error: error validating "aws-rds.yaml": error validating data: ValidationError(RDSInstance.spec.forProvider.vpcSecurityGroupIDRefs[0]): invalid type for io.crossplane.aws.database.v1beta1.RDSInstance.spec.forProvider.vpcSecurityGroupIDRefs: got "string", expected "map"

Security group

kubectl get SecurityGroup
NAME            READY   SYNCED   ID                     VPC                     AGE
rds-access-sg   True    True     sg-0p04733a3e2p8pp63   vpc-048b00e0000e7c1b1   19h

From crds crossplane

          vpcSecurityGroupIDRefs:
            description: VPCSecurityGroupIDRefs are references to VPCSecurityGroups
              used to set the VPCSecurityGroupIDs.
            items:
              description: A Reference to a named object.
              properties:
                name:
                  description: Name of the referenced object.
                  type: string
              required:
              - name
              type: object
            type: array

How to change vpcSecurityGroupIDRefs to get the array?

CodePudding user response:

...vpcSecurityGroupIDRefs: got "map", expected "array"

Try:

...
vpcSecurityGroupIDRefs: 
  - name: rds-access-sg
  • Related