Marketplace
BrowsePublish
Marketplace
devops-toolkit/dot-application@v0.6.10
app-frontend

app-frontend

app-frontend
devops-toolkit/dot-application@v0.6.10app-frontend
Type

Composition

Referenced XRD

App

Source Codegithub.com/vfarcic/crossplane-app
Resources (5)

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

Kind
Group
Version

ProviderConfig

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1

Object

kubernetes.crossplane.io
v1alpha1
YAML
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
  name: app-frontend
  creationTimestamp: null
  labels:
    type: frontend
spec:
  compositeTypeRef:
    apiVersion: devopstoolkitseries.com/v1alpha1
    kind: App
  patchSets:
    - name: metadata
      patches:
        - fromFieldPath: metadata.labels
  resources:
    - name: kubernetes
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: ProviderConfig
        spec:
          credentials:
            source: InjectedIdentity
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
      readinessChecks:
        - type: None
    - name: deployment
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: apps/v1
              kind: Deployment
              spec:
                template:
                  spec:
                    containers:
                      - livenessProbe:
                          httpGet:
                            path: /
                            port: 80
                        name: frontend
                        ports:
                          - containerPort: 80
                        readinessProbe:
                          httpGet:
                            path: /
                            port: 80
                        resources:
                          limits:
                            cpu: 250m
                            memory: 256Mi
                          requests:
                            cpu: 125m
                            memory: 128Mi
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-deployment"
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.name
        - fromFieldPath: spec.parameters.namespace
          toFieldPath: spec.forProvider.manifest.metadata.namespace
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.labels.app
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.spec.selector.matchLabels.app
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.spec.template.metadata.labels.app
        - fromFieldPath: spec.parameters.image
          toFieldPath: spec.forProvider.manifest.spec.template.spec.containers[0].image
        - fromFieldPath: spec.parameters.port
          toFieldPath: spec.forProvider.manifest.spec.template.spec.containers[0].ports[0].containerPort
        - fromFieldPath: spec.parameters.port
          toFieldPath: spec.forProvider.manifest.spec.template.spec.containers[0].livenessProbe.httpGet.port
        - fromFieldPath: spec.parameters.port
          toFieldPath: spec.forProvider.manifest.spec.template.spec.containers[0].readinessProbe.httpGet.port
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
      readinessChecks:
        - type: None
    - name: service
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: v1
              kind: Service
              spec:
                ports:
                  - name: http
                    port: 80
                    protocol: TCP
                    targetPort: 80
                type: ClusterIP
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-service"
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.name
        - fromFieldPath: spec.parameters.namespace
          toFieldPath: spec.forProvider.manifest.metadata.namespace
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.labels.app
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.spec.selector.app
        - fromFieldPath: spec.parameters.port
          toFieldPath: spec.forProvider.manifest.spec.ports[0].port
        - fromFieldPath: spec.parameters.port
          toFieldPath: spec.forProvider.manifest.spec.ports[0].targetPort
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
      readinessChecks:
        - type: None
    - name: ingress
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: networking.k8s.io/v1
              kind: Ingress
              metadata:
                annotations:
                  ingress.kubernetes.io/ssl-redirect: "false"
              spec:
                rules:
                  - host: devopstoolkitseries.com
                    http:
                      paths:
                        - backend:
                            service:
                              name: devops-toolkit
                              port:
                                number: 80
                          path: /
                          pathType: ImplementationSpecific
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-ingress"
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.name
        - fromFieldPath: spec.parameters.namespace
          toFieldPath: spec.forProvider.manifest.metadata.namespace
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.labels.app
        - fromFieldPath: spec.parameters.host
          toFieldPath: spec.forProvider.manifest.spec.rules[0].host
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.spec.rules[0].http.paths[0].backend.service.name
        - fromFieldPath: spec.parameters.port
          toFieldPath: spec.forProvider.manifest.spec.rules[0].http.paths[0].backend.service.port.number
        - fromFieldPath: spec.id
          toFieldPath: spec.providerConfigRef.name
        - type: ToCompositeFieldPath
          fromFieldPath: spec.forProvider.manifest.spec.rules[0].host
          toFieldPath: status.host
      readinessChecks:
        - type: None
    - name: hpa
      base:
        apiVersion: kubernetes.crossplane.io/v1alpha1
        kind: Object
        spec:
          forProvider:
            manifest:
              apiVersion: autoscaling/v1
              kind: HorizontalPodAutoscaler
              spec:
                maxReplicas: 6
                minReplicas: 2
                scaleTargetRef:
                  apiVersion: apps/v1
                  kind: Deployment
                targetCPUUtilizationPercentage: 80
      patches:
        - fromFieldPath: spec.id
          toFieldPath: metadata.name
          transforms:
            - type: string
              string:
                fmt: "%s-ingress"
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.name
        - fromFieldPath: spec.parameters.namespace
          toFieldPath: spec.forProvider.manifest.metadata.namespace
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.metadata.labels.app
        - fromFieldPath: spec.id
          toFieldPath: spec.forProvider.manifest.spec.scaleTargetRef.name
      readinessChecks:
        - type: None
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.