github.com/giantswarm/apiextensions/v6@v6.6.0/helm/crds-common/templates/application.giantswarm.io_apps.yaml (about)

     1  
     2  ---
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.7.0
     8    creationTimestamp: null
     9    name: apps.application.giantswarm.io
    10  spec:
    11    group: application.giantswarm.io
    12    names:
    13      categories:
    14      - common
    15      - giantswarm
    16      kind: App
    17      listKind: AppList
    18      plural: apps
    19      singular: app
    20    scope: Namespaced
    21    versions:
    22    - additionalPrinterColumns:
    23      - description: Desired version of the app
    24        jsonPath: .spec.version
    25        name: Desired Version
    26        priority: 1
    27        type: string
    28      - description: Installed version of the app
    29        jsonPath: .status.version
    30        name: Installed Version
    31        type: string
    32      - description: Time of app creation
    33        jsonPath: .metadata.creationTimestamp
    34        name: Created At
    35        type: date
    36      - description: Time since last deployment
    37        jsonPath: .status.release.lastDeployed
    38        name: Last Deployed
    39        type: date
    40      - description: Deployment status of the app
    41        jsonPath: .status.release.status
    42        name: Status
    43        type: string
    44      name: v1alpha1
    45      schema:
    46        openAPIV3Schema:
    47          description: App represents a managed app which a user intended to install.
    48            It is reconciled by app-operator.
    49          properties:
    50            apiVersion:
    51              description: 'APIVersion defines the versioned schema of this representation
    52                of an object. Servers should convert recognized schemas to the latest
    53                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    54              type: string
    55            kind:
    56              description: 'Kind is a string value representing the REST resource this
    57                object represents. Servers may infer this from the endpoint the client
    58                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    59              type: string
    60            metadata:
    61              type: object
    62            spec:
    63              properties:
    64                catalog:
    65                  description: Catalog is the name of the app catalog this app belongs
    66                    to. e.g. giantswarm
    67                  type: string
    68                catalogNamespace:
    69                  description: CatalogNamespace is the namespace of the Catalog CR this
    70                    app belongs to. e.g. giantswarm
    71                  nullable: true
    72                  type: string
    73                config:
    74                  description: Config is the config to be applied when the app is deployed.
    75                  nullable: true
    76                  properties:
    77                    configMap:
    78                      description: ConfigMap references a config map containing values
    79                        that should be applied to the app.
    80                      nullable: true
    81                      properties:
    82                        name:
    83                          description: Name is the name of the config map containing
    84                            app values to apply, e.g. prometheus-values.
    85                          type: string
    86                        namespace:
    87                          description: Namespace is the namespace of the values config
    88                            map, e.g. monitoring.
    89                          type: string
    90                      required:
    91                      - name
    92                      - namespace
    93                      type: object
    94                    secret:
    95                      description: Secret references a secret containing secret values
    96                        that should be applied to the app.
    97                      nullable: true
    98                      properties:
    99                        name:
   100                          description: Name is the name of the secret containing app
   101                            values to apply, e.g. prometheus-secret.
   102                          type: string
   103                        namespace:
   104                          description: Namespace is the namespace of the secret, e.g.
   105                            kube-system.
   106                          type: string
   107                      required:
   108                      - name
   109                      - namespace
   110                      type: object
   111                  type: object
   112                extraConfigs:
   113                  description: 'ExtraConfigs is a list of configurations to merge together
   114                    based on the priority and order in the list. See: https://github.com/giantswarm/rfc/tree/main/multi-layer-app-config#enhancing-app-cr'
   115                  items:
   116                    properties:
   117                      kind:
   118                        default: configMap
   119                        description: Kind of configuration to look up that should be
   120                          applied to the app when deployed.
   121                        enum:
   122                        - configMap
   123                        - secret
   124                        type: string
   125                      name:
   126                        description: Name of the resource of the given kind to look
   127                          up.
   128                        type: string
   129                      namespace:
   130                        description: Namespace where the resource with the given name
   131                          and kind to look up is located.
   132                        type: string
   133                      priority:
   134                        default: 25
   135                        description: 'Priority is used to indicate at which stage the
   136                          extra configuration should be merged. See: https://github.com/giantswarm/rfc/tree/main/multi-layer-app-config#enhancing-app-cr'
   137                        maximum: 150
   138                        minimum: 1
   139                        type: integer
   140                    required:
   141                    - name
   142                    - namespace
   143                    type: object
   144                  nullable: true
   145                  type: array
   146                install:
   147                  description: Install is the config used when installing the app.
   148                  nullable: true
   149                  properties:
   150                    skipCRDs:
   151                      description: 'SkipCRDs when true decides that CRDs which are supplied
   152                        with the chart are not installed. Default: false.'
   153                      nullable: true
   154                      type: boolean
   155                    timeout:
   156                      description: Timeout for the Helm install. When not set the default
   157                        timeout of 5 minutes is being enforced.
   158                      pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$
   159                      type: string
   160                  type: object
   161                kubeConfig:
   162                  description: KubeConfig is the kubeconfig to connect to the cluster
   163                    when deploying the app.
   164                  properties:
   165                    context:
   166                      description: Context is the kubeconfig context.
   167                      nullable: true
   168                      properties:
   169                        name:
   170                          description: Name is the name of the kubeconfig context. e.g.
   171                            giantswarm-12345.
   172                          type: string
   173                      required:
   174                      - name
   175                      type: object
   176                    inCluster:
   177                      description: InCluster is a flag for whether to use InCluster
   178                        credentials. When true the context name and secret should not
   179                        be set.
   180                      type: boolean
   181                    secret:
   182                      description: Secret references a secret containing the kubconfig.
   183                      nullable: true
   184                      properties:
   185                        name:
   186                          description: Name is the name of the secret containing the
   187                            kubeconfig, e.g. app-operator-kubeconfig.
   188                          type: string
   189                        namespace:
   190                          description: Namespace is the namespace of the secret containing
   191                            the kubeconfig, e.g. giantswarm.
   192                          type: string
   193                      required:
   194                      - name
   195                      - namespace
   196                      type: object
   197                  required:
   198                  - inCluster
   199                  type: object
   200                name:
   201                  description: Name is the name of the app to be deployed. e.g. kubernetes-prometheus
   202                  type: string
   203                namespace:
   204                  description: Namespace is the target namespace where the app should
   205                    be deployed e.g. monitoring, it cannot be changed.
   206                  type: string
   207                namespaceConfig:
   208                  description: NamespaceConfig is the namespace config to be applied
   209                    to the target namespace when the app is deployed.
   210                  nullable: true
   211                  properties:
   212                    annotations:
   213                      additionalProperties:
   214                        type: string
   215                      description: Annotations is a string map of annotations to apply
   216                        to the target namespace.
   217                      nullable: true
   218                      type: object
   219                    labels:
   220                      additionalProperties:
   221                        type: string
   222                      description: Labels is a string map of labels to apply to the
   223                        target namespace.
   224                      nullable: true
   225                      type: object
   226                  type: object
   227                rollback:
   228                  description: Rollback is the config used when rolling back the app.
   229                  nullable: true
   230                  properties:
   231                    timeout:
   232                      description: Timeout for the Helm rollback. When not set the default
   233                        timeout of 5 minutes is being enforced.
   234                      pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$
   235                      type: string
   236                  type: object
   237                uninstall:
   238                  description: Uninstall is the config used when uninstalling the app.
   239                  nullable: true
   240                  properties:
   241                    timeout:
   242                      description: Timeout for the Helm uninstall. When not set the
   243                        default timeout of 5 minutes is being enforced.
   244                      pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$
   245                      type: string
   246                  type: object
   247                upgrade:
   248                  description: Upgrade is the config used when upgrading the app.
   249                  nullable: true
   250                  properties:
   251                    timeout:
   252                      description: Timeout for the Helm upgrade. When not set the default
   253                        timeout of 5 minutes is being enforced.
   254                      pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$
   255                      type: string
   256                  type: object
   257                userConfig:
   258                  description: UserConfig is the user config to be applied when the
   259                    app is deployed.
   260                  nullable: true
   261                  properties:
   262                    configMap:
   263                      description: ConfigMap references a config map containing user
   264                        values that should be applied to the app.
   265                      nullable: true
   266                      properties:
   267                        name:
   268                          description: Name is the name of the config map containing
   269                            user values to apply, e.g. prometheus-user-values.
   270                          type: string
   271                        namespace:
   272                          description: Namespace is the namespace of the user values
   273                            config map on the management cluster, e.g. 123ab.
   274                          type: string
   275                      required:
   276                      - name
   277                      - namespace
   278                      type: object
   279                    secret:
   280                      description: Secret references a secret containing user secret
   281                        values that should be applied to the app.
   282                      nullable: true
   283                      properties:
   284                        name:
   285                          description: Name is the name of the secret containing user
   286                            values to apply, e.g. prometheus-user-secret.
   287                          type: string
   288                        namespace:
   289                          description: Namespace is the namespace of the secret, e.g.
   290                            kube-system.
   291                          type: string
   292                      required:
   293                      - name
   294                      - namespace
   295                      type: object
   296                  type: object
   297                version:
   298                  description: Version is the version of the app that should be deployed.
   299                    e.g. 1.0.0
   300                  type: string
   301              required:
   302              - catalog
   303              - kubeConfig
   304              - name
   305              - namespace
   306              - version
   307              type: object
   308            status:
   309              description: Status Spec part of the App resource. Initially, it would
   310                be left as empty until the operator successfully reconciles the helm
   311                release.
   312              properties:
   313                appVersion:
   314                  description: AppVersion is the value of the AppVersion field in the
   315                    Chart.yaml of the deployed app. This is an optional field with the
   316                    version of the component being deployed. e.g. 0.21.0. https://helm.sh/docs/topics/charts/#the-chartyaml-file
   317                  type: string
   318                release:
   319                  description: Release is the status of the Helm release for the deployed
   320                    app.
   321                  properties:
   322                    lastDeployed:
   323                      description: LastDeployed is the time when the app was last deployed.
   324                      format: date-time
   325                      nullable: true
   326                      type: string
   327                    reason:
   328                      description: Reason is the description of the last status of helm
   329                        release when the app is not installed successfully, e.g. deploy
   330                        resource already exists.
   331                      type: string
   332                    status:
   333                      description: Status is the status of the deployed app, e.g. DEPLOYED.
   334                      type: string
   335                  required:
   336                  - status
   337                  type: object
   338                version:
   339                  description: Version is the value of the Version field in the Chart.yaml
   340                    of the deployed app. e.g. 1.0.0.
   341                  type: string
   342              required:
   343              - appVersion
   344              - release
   345              - version
   346              type: object
   347          required:
   348          - spec
   349          type: object
   350      served: true
   351      storage: true
   352      subresources:
   353        status: {}
   354  status:
   355    acceptedNames:
   356      kind: ""
   357      plural: ""
   358    conditions: []
   359    storedVersions: []