upbound/platform-ref-azure-ha-webapp@v0.1.0
xhawebapps.ha.azure.upbound.io

xhawebapps.ha.azure.upbound.io

xhawebapps.ha.azure.upbound.io
upbound/platform-ref-azure-ha-webapp@v0.1.0xhawebapps.ha.azure.upbound.io
Type

Composition

Referenced XRD

XHAWebApp

Source Codegithub.com/upbound/platform-ref-azure-ha-webapp
Resources (11)

The following resources are composed to implement the referenced Composite Resource Definition (XRD).

Kind
Group
Version

ResourceGroup

azure.upbound.io
v1beta1

ServicePlan

web.azure.upbound.io
v1beta1

ServicePlan

web.azure.upbound.io
v1beta1

LinuxWebApp

web.azure.upbound.io
v1beta1

LinuxWebApp

web.azure.upbound.io
v1beta1

FrontdoorProfile

cdn.azure.upbound.io
v1beta1

FrontdoorOriginGroup

cdn.azure.upbound.io
v1beta1

FrontdoorOrigin

cdn.azure.upbound.io
v1beta1

FrontdoorOrigin

cdn.azure.upbound.io
v1beta1

FrontdoorEndpoint

cdn.azure.upbound.io
v1beta1

FrontdoorRoute

cdn.azure.upbound.io
v1beta1
YAML
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
  name: xhawebapps.ha.azure.upbound.io
  creationTimestamp: null
  labels:
    provider: azure
spec:
  compositeTypeRef:
    apiVersion: ha.azure.upbound.io/v1alpha1
    kind: XHAWebApp
  patchSets:
    - name: primaryRegion
      patches:
        - fromFieldPath: spec.primaryRegion
          toFieldPath: spec.forProvider.location
        - fromFieldPath: spec.primaryRegion
          toFieldPath: metadata.labels[ha.azure.upbound.io/region]
        - type: CombineFromComposite
          combine:
            variables:
              - fromFieldPath: metadata.name
              - fromFieldPath: spec.primaryRegion
            strategy: string
            string:
              fmt: "%s-%s"
          toFieldPath: metadata.name
    - name: secondaryRegion
      patches:
        - fromFieldPath: spec.secondaryRegion
          toFieldPath: spec.forProvider.location
        - fromFieldPath: spec.secondaryRegion
          toFieldPath: metadata.labels[ha.azure.upbound.io/region]
        - type: CombineFromComposite
          combine:
            variables:
              - fromFieldPath: metadata.name
              - fromFieldPath: spec.secondaryRegion
            strategy: string
            string:
              fmt: "%s-%s"
          toFieldPath: metadata.name
  resources:
    - name: resource-group
      base:
        apiVersion: azure.upbound.io/v1beta1
        kind: ResourceGroup
      patches:
        - type: PatchSet
          patchSetName: primaryRegion
    - name: service-plan-primary
      base:
        apiVersion: web.azure.upbound.io/v1beta1
        kind: ServicePlan
        spec:
          forProvider:
            osType: Linux
            resourceGroupNameSelector:
              matchControllerRef: true
            skuName: B1
      patches:
        - type: PatchSet
          patchSetName: primaryRegion
    - name: service-plan-secondary
      base:
        apiVersion: web.azure.upbound.io/v1beta1
        kind: ServicePlan
        spec:
          forProvider:
            osType: Linux
            resourceGroupNameSelector:
              matchControllerRef: true
            skuName: B1
      patches:
        - type: PatchSet
          patchSetName: secondaryRegion
    - name: web-app-primary
      base:
        apiVersion: web.azure.upbound.io/v1beta1
        kind: LinuxWebApp
        spec:
          forProvider:
            osType: Linux
            resourceGroupNameSelector:
              matchControllerRef: true
            servicePlanIdSelector:
              matchControllerRef: true
            siteConfig:
              - alwaysOn: true
            skuName: B1
      patches:
        - type: PatchSet
          patchSetName: primaryRegion
        - type: FromCompositeFieldPath
          fromFieldPath: spec.primaryRegion
          toFieldPath: spec.forProvider.servicePlanIdSelector.matchLabels[ha.azure.upbound.io/region]
        - type: ToCompositeFieldPath
          fromFieldPath: status.atProvider.defaultHostname
          toFieldPath: status.primaryAppDomain
    - name: web-app-secondary
      base:
        apiVersion: web.azure.upbound.io/v1beta1
        kind: LinuxWebApp
        spec:
          forProvider:
            osType: Linux
            resourceGroupNameSelector:
              matchControllerRef: true
            servicePlanIdSelector:
              matchControllerRef: true
            siteConfig:
              - alwaysOn: true
            skuName: B1
      patches:
        - type: PatchSet
          patchSetName: secondaryRegion
        - type: FromCompositeFieldPath
          fromFieldPath: spec.secondaryRegion
          toFieldPath: spec.forProvider.servicePlanIdSelector.matchLabels[ha.azure.upbound.io/region]
        - type: ToCompositeFieldPath
          fromFieldPath: status.atProvider.defaultHostname
          toFieldPath: status.secondaryAppDomain
    - name: frontdoor-profile
      base:
        apiVersion: cdn.azure.upbound.io/v1beta1
        kind: FrontdoorProfile
        spec:
          forProvider:
            resourceGroupNameSelector:
              matchControllerRef: true
            skuName: Standard_AzureFrontDoor
    - name: frontdoor-origin-group
      base:
        apiVersion: cdn.azure.upbound.io/v1beta1
        kind: FrontdoorOriginGroup
        spec:
          forProvider:
            cdnFrontdoorProfileIdSelector:
              matchControllerRef: true
            healthProbe:
              - intervalInSeconds: 10
                path: /
                protocol: Https
                requestType: HEAD
            loadBalancing:
              - additionalLatencyInMilliseconds: 50
                sampleSize: 4
                successfulSamplesRequired: 3
            sessionAffinityEnabled: false
    - name: frontdoor-origin-primary
      base:
        apiVersion: cdn.azure.upbound.io/v1beta1
        kind: FrontdoorOrigin
        spec:
          forProvider:
            cdnFrontdoorOriginGroupIdSelector:
              matchControllerRef: true
            certificateNameCheckEnabled: false
            enabled: true
            httpPort: 80
            httpsPort: 443
            priority: 1
            weight: 1
      patches:
        - type: FromCompositeFieldPath
          fromFieldPath: status.primaryAppDomain
          toFieldPath: spec.forProvider.hostName
          policy:
            fromFieldPath: Required
        - type: FromCompositeFieldPath
          fromFieldPath: status.primaryAppDomain
          toFieldPath: spec.forProvider.originHostHeader
          policy:
            fromFieldPath: Required
    - name: frontdoor-origin-secondary
      base:
        apiVersion: cdn.azure.upbound.io/v1beta1
        kind: FrontdoorOrigin
        spec:
          forProvider:
            cdnFrontdoorOriginGroupIdSelector:
              matchControllerRef: true
            certificateNameCheckEnabled: false
            enabled: true
            httpPort: 80
            httpsPort: 443
            priority: 2
            weight: 1
      patches:
        - type: FromCompositeFieldPath
          fromFieldPath: status.secondaryAppDomain
          toFieldPath: spec.forProvider.hostName
          policy:
            fromFieldPath: Required
        - type: FromCompositeFieldPath
          fromFieldPath: status.secondaryAppDomain
          toFieldPath: spec.forProvider.originHostHeader
          policy:
            fromFieldPath: Required
    - name: frontdoor-endpoint
      base:
        apiVersion: cdn.azure.upbound.io/v1beta1
        kind: FrontdoorEndpoint
        spec:
          forProvider:
            cdnFrontdoorProfileIdSelector:
              matchControllerRef: true
      patches:
        - type: ToCompositeFieldPath
          fromFieldPath: status.atProvider.hostName
          toFieldPath: status.globalEndpoint
    - name: frontdoor-route
      base:
        apiVersion: cdn.azure.upbound.io/v1beta1
        kind: FrontdoorRoute
        spec:
          forProvider:
            cdnFrontdoorEndpointIdSelector:
              matchControllerRef: true
            cdnFrontdoorOriginGroupIdSelector:
              matchControllerRef: true
            cdnFrontdoorOriginIdsSelector:
              matchControllerRef: true
            enabled: true
            forwardingProtocol: HttpsOnly
            httpsRedirectEnabled: true
            linkToDefaultDomain: true
            patternsToMatch:
              - /*
            supportedProtocols:
              - Http
              - Https
Discover the building blocks for your internal cloud platform.
© 2024 Upbound, Inc.
Solutions