Marketplace
BrowsePublish
Marketplace
upbound/configuration-aws-securitygroup@v0.3.0
xsecuritygroups.aws.platform.upbound.io

xsecuritygroups.aws.platform.upbound.io

xsecuritygroups.aws.platform.upbound.io
upbound/configuration-aws-securitygroup@v0.3.0xsecuritygroups.aws.platform.upbound.io
Type

Composition

Referenced XRD

XSecurityGroup

Source Codegithub.com/upbound/configuration-aws-securitygroup
YAML
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
  name: xsecuritygroups.aws.platform.upbound.io
  creationTimestamp: null
spec:
  compositeTypeRef:
    apiVersion: aws.platform.upbound.io/v1alpha1
    kind: XSecurityGroup
  mode: Pipeline
  pipeline:
    - step: go-templating
      functionRef:
        name: crossplane-contrib-function-go-templating
      input:
        apiVersion: gotemplating.fn.crossplane.io/v1beta1
        inline:
          template: >
            {{ $metadata := .observed.composite.resource.metadata }}

            {{ $spec := .observed.composite.resource.spec }}

            ---

            apiVersion: ec2.aws.upbound.io/v1beta1

            kind: SecurityGroup

            metadata:
              name: {{ $metadata.name }}
              annotations:
                gotemplating.fn.crossplane.io/composition-resource-name: securitygroup
            spec:
              deletionPolicy: {{ $spec.parameters.deletionPolicy | default "Delete" }}
              forProvider:
                name: {{ $metadata.name }}
                region: {{ $spec.parameters.region }}
                vpcIdSelector:
                  matchLabels:
                    networks.aws.platform.upbound.io/network-id: {{ $spec.parameters.id }}
              providerConfigRef:
                name: {{ $spec.parameters.providerConfigName }}
            {{- range $i, $rule := $spec.parameters.rules }}

            {{ $cidr := $rule.cidrBlocks }}

            {{- if not $cidr }}
              {{ $cidr = list "" }}
            {{- end }}

            {{- range $j, $cidrBlock := $cidr }}

            ---

            apiVersion: ec2.aws.upbound.io/v1beta1

            {{- if or (eq $rule.type "ingress") (eq $rule.type "egress") }}

            kind: SecurityGroup{{ title $rule.type }}Rule

            {{- end }}

            metadata:
              annotations:
                gotemplating.fn.crossplane.io/composition-resource-name: sgrule-{{ $i }}{{ $cidrBlock | replace "." "-" | replace "/" "-" }}
            spec:
              deletionPolicy: {{ $spec.parameters.deletionPolicy | default "Delete" }}
              forProvider:
                {{- if $cidrBlock }}
                cidrIpv4: {{ $cidrBlock }}
                {{- end }}
                region: {{ $spec.parameters.region }}
                securityGroupIdSelector:
                  matchControllerRef: true
                {{- if $rule.fromPort }}
                fromPort: {{ $rule.fromPort }}
                {{- end }}
                {{- if $rule.toPort }}
                toPort: {{ $rule.toPort }}
                {{- end }}
                description: {{ $rule.description }}
                ipProtocol: '{{ $rule.protocol }}'
                {{- if $rule.isSelf }}
                referencedSecurityGroupIdSelector:
                  matchControllerRef: true
                {{- end }}
                {{- if $rule.sourceSecurityGroupName }}
                referencedSecurityGroupIdRef:
                  name: {{ $rule.sourceSecurityGroupName }}
                {{- end }}
              {{- if $spec.parameters.providerConfigName }}
              providerConfigRef:
                name: {{ $spec.parameters.providerConfigName }}
              {{- end }}
            {{- end }}

            {{- end }}
        kind: GoTemplate
        source: Inline
    - step: automatically-detect-ready-composed-resources
      functionRef:
        name: crossplane-contrib-function-auto-ready
Marketplace

Discover the building blocks for your internal cloud platform.

© 2022 Upbound, Inc.

SolutionsProvidersConfigurations
LearnDocumentationTry for Free
MorePrivacy PolicyTerms & Conditions
Marketplace

© 2022 Upbound, Inc.

Marketplace

Discover the building blocksfor your internal cloud platform.