k8c.io/api/v3@v3.0.0-20230904060738-b0a93889c0b6/crd/enterprise/kcp/ee.apps.kubermatic.k8c.io_applicationinstallations.yaml (about)

     1  # This file has been generated by hack/update-codegen.sh, DO NOT EDIT.
     2  
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.12.0
     8    name: applicationinstallations.ee.apps.kubermatic.k8c.io
     9  spec:
    10    group: ee.apps.kubermatic.k8c.io
    11    names:
    12      kind: ApplicationInstallation
    13      listKind: ApplicationInstallationList
    14      plural: applicationinstallations
    15      shortNames:
    16        - appinstall
    17      singular: applicationinstallation
    18    scope: Namespaced
    19    versions:
    20      - name: v1
    21        schema:
    22          openAPIV3Schema:
    23            description: ApplicationInstallation describes a single installation of an Application.
    24            properties:
    25              apiVersion:
    26                description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    27                type: string
    28              kind:
    29                description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    30                type: string
    31              metadata:
    32                type: object
    33              spec:
    34                properties:
    35                  applicationRef:
    36                    description: ApplicationRef is a reference to identify which Application should be deployed
    37                    properties:
    38                      name:
    39                        description: Name of the Application. Should be a valid lowercase RFC1123 domain name
    40                        maxLength: 63
    41                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
    42                        type: string
    43                      version:
    44                        description: Version of the Application. Must be a valid SemVer version
    45                        pattern: v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?
    46                        type: string
    47                    required:
    48                      - name
    49                      - version
    50                    type: object
    51                  deployOptions:
    52                    description: DeployOptions holds the settings specific to the templating method used to deploy the application.
    53                    properties:
    54                      helm:
    55                        description: HelmDeployOptions holds the deployment settings when templating method is Helm.
    56                        properties:
    57                          atomic:
    58                            description: Atomic corresponds to the --atomic flag on Helm cli. if set, the installation process deletes the installation on failure; the upgrade process rolls back changes made in case of failed upgrade.
    59                            type: boolean
    60                          enableDNS:
    61                            description: EnableDNS  corresponds to the --enable-dns flag on Helm cli. enable DNS lookups when rendering templates. if you enable this flag, you have to verify that helm template function 'getHostByName' is not being used in a chart to disclose any information you do not want to be passed to DNS servers.(c.f. CVE-2023-25165)
    62                            type: boolean
    63                          timeout:
    64                            description: Timeout corresponds to the --timeout flag on Helm cli. time to wait for any individual Kubernetes operation.
    65                            type: string
    66                          wait:
    67                            description: Wait corresponds to the --wait flag on Helm cli. if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful. It will wait for as long as timeout
    68                            type: boolean
    69                        type: object
    70                    type: object
    71                  namespace:
    72                    description: Namespace describe the desired state of the namespace where application will be created.
    73                    properties:
    74                      annotations:
    75                        additionalProperties:
    76                          type: string
    77                        description: 'Annotations of the namespace More info: http://kubernetes.io/docs/user-guide/annotations'
    78                        type: object
    79                      create:
    80                        default: true
    81                        description: Create defines whether the namespace should be created if it does not exist. Defaults to true
    82                        type: boolean
    83                      labels:
    84                        additionalProperties:
    85                          type: string
    86                        description: 'Labels of the namespace More info: http://kubernetes.io/docs/user-guide/labels'
    87                        type: object
    88                      name:
    89                        description: Name is the namespace to deploy the Application into. Should be a valid lowercase RFC1123 domain name
    90                        maxLength: 63
    91                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
    92                        type: string
    93                    required:
    94                      - create
    95                      - name
    96                    type: object
    97                  reconciliationInterval:
    98                    description: "ReconciliationInterval is the interval at which to force the reconciliation of the application. By default, Applications are only reconciled on changes on spec, annotations, or the parent application definition. Meaning that if the user manually deletes the workload deployed by the application, nothing will happen until the application CR change. \n Setting a value greater than zero force reconciliation even if no changes occurred on application CR. Setting a value equal to 0 disables the force reconciliation of the application (default behavior). Setting this too low can cause a heavy load and may disrupt your application workload depending on the template method."
    99                    type: string
   100                  values:
   101                    description: Values describe overrides for manifest-rendering. It's a free yaml field.
   102                    type: object
   103                    x-kubernetes-preserve-unknown-fields: true
   104                required:
   105                  - applicationRef
   106                  - namespace
   107                type: object
   108              status:
   109                description: ApplicationInstallationStatus denotes status information about an ApplicationInstallation.
   110                properties:
   111                  applicationVersion:
   112                    description: ApplicationVersion contains information installing / removing application
   113                    properties:
   114                      template:
   115                        description: Template defines how application is installed (source provenance, Method...)
   116                        properties:
   117                          source:
   118                            description: Defined how the source of the application (e.g Helm chart) is retrieved. Exactly one type of source must be defined.
   119                            properties:
   120                              git:
   121                                description: Install application from a Git repository
   122                                properties:
   123                                  credentials:
   124                                    description: Credentials are optional and holds the git credentials
   125                                    properties:
   126                                      method:
   127                                        description: Authentication method. Either password or token or ssh-key. if method is password then username and password must be defined. if method is token then token must be defined. if method is ssh-key then ssh-key must be defined.
   128                                        enum:
   129                                          - password
   130                                          - token
   131                                          - ssh-key
   132                                        type: string
   133                                      password:
   134                                        description: Password holds the ref and key in the secret for the Password credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   135                                        properties:
   136                                          key:
   137                                            description: The key of the secret to select from.  Must be a valid secret key.
   138                                            type: string
   139                                          name:
   140                                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   141                                            type: string
   142                                          optional:
   143                                            description: Specify whether the Secret or its key must be defined
   144                                            type: boolean
   145                                        required:
   146                                          - key
   147                                        type: object
   148                                        x-kubernetes-map-type: atomic
   149                                      sshKey:
   150                                        description: SSHKey holds the ref and key in the secret for the SshKey credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   151                                        properties:
   152                                          key:
   153                                            description: The key of the secret to select from.  Must be a valid secret key.
   154                                            type: string
   155                                          name:
   156                                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   157                                            type: string
   158                                          optional:
   159                                            description: Specify whether the Secret or its key must be defined
   160                                            type: boolean
   161                                        required:
   162                                          - key
   163                                        type: object
   164                                        x-kubernetes-map-type: atomic
   165                                      token:
   166                                        description: Token holds the ref and key in the secret for the token credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   167                                        properties:
   168                                          key:
   169                                            description: The key of the secret to select from.  Must be a valid secret key.
   170                                            type: string
   171                                          name:
   172                                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   173                                            type: string
   174                                          optional:
   175                                            description: Specify whether the Secret or its key must be defined
   176                                            type: boolean
   177                                        required:
   178                                          - key
   179                                        type: object
   180                                        x-kubernetes-map-type: atomic
   181                                      username:
   182                                        description: Username holds the ref and key in the secret for the username credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   183                                        properties:
   184                                          key:
   185                                            description: The key of the secret to select from.  Must be a valid secret key.
   186                                            type: string
   187                                          name:
   188                                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   189                                            type: string
   190                                          optional:
   191                                            description: Specify whether the Secret or its key must be defined
   192                                            type: boolean
   193                                        required:
   194                                          - key
   195                                        type: object
   196                                        x-kubernetes-map-type: atomic
   197                                    required:
   198                                      - method
   199                                    type: object
   200                                  path:
   201                                    description: Path of the "source" in the repository. default is repository root
   202                                    type: string
   203                                  ref:
   204                                    description: Git reference to checkout. For large repositories, we recommend to either use Tag, Branch or Branch+Commit. This allows a shallow clone, which dramatically speeds up performance
   205                                    properties:
   206                                      branch:
   207                                        description: Branch to checkout. Only the last commit of the branch will be checkout in order to reduce the amount of data to download.
   208                                        type: string
   209                                      commit:
   210                                        description: "Commit SHA in a Branch to checkout. \n It must be used in conjunction with branch field."
   211                                        pattern: ^[a-f0-9]{40}$
   212                                        type: string
   213                                      tag:
   214                                        description: Tag to check out. It can not be used in conjunction with commit or branch.
   215                                        type: string
   216                                    type: object
   217                                  remote:
   218                                    description: URL to the repository. Can be HTTP(s) (e.g. https://example.com/myrepo) or SSH (e.g. git://example.com[:port]/path/to/repo.git/)
   219                                    minLength: 1
   220                                    type: string
   221                                required:
   222                                  - ref
   223                                  - remote
   224                                type: object
   225                              helm:
   226                                description: Install Application from a Helm repository
   227                                properties:
   228                                  chartName:
   229                                    description: Name of the Chart.
   230                                    minLength: 1
   231                                    type: string
   232                                  chartVersion:
   233                                    description: Version of the Chart.
   234                                    minLength: 1
   235                                    type: string
   236                                  credentials:
   237                                    description: Credentials are optional and hold the ref to the secret with helm credentials. Either username / Password or registryConfigFile can be defined.
   238                                    properties:
   239                                      password:
   240                                        description: Password holds the ref and key in the secret for the Password credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   241                                        properties:
   242                                          key:
   243                                            description: The key of the secret to select from.  Must be a valid secret key.
   244                                            type: string
   245                                          name:
   246                                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   247                                            type: string
   248                                          optional:
   249                                            description: Specify whether the Secret or its key must be defined
   250                                            type: boolean
   251                                        required:
   252                                          - key
   253                                        type: object
   254                                        x-kubernetes-map-type: atomic
   255                                      registryConfigFile:
   256                                        description: RegistryConfigFile holds the ref and key in the secret for the registry credential file. The value is dockercfg file that follows the same format rules as ~/.docker/config.json The The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   257                                        properties:
   258                                          key:
   259                                            description: The key of the secret to select from.  Must be a valid secret key.
   260                                            type: string
   261                                          name:
   262                                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   263                                            type: string
   264                                          optional:
   265                                            description: Specify whether the Secret or its key must be defined
   266                                            type: boolean
   267                                        required:
   268                                          - key
   269                                        type: object
   270                                        x-kubernetes-map-type: atomic
   271                                      username:
   272                                        description: Username holds the ref and key in the secret for the username credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   273                                        properties:
   274                                          key:
   275                                            description: The key of the secret to select from.  Must be a valid secret key.
   276                                            type: string
   277                                          name:
   278                                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   279                                            type: string
   280                                          optional:
   281                                            description: Specify whether the Secret or its key must be defined
   282                                            type: boolean
   283                                        required:
   284                                          - key
   285                                        type: object
   286                                        x-kubernetes-map-type: atomic
   287                                    type: object
   288                                  url:
   289                                    description: URl of the helm repository. It can be an HTTP(s) repository (e.g. https://localhost/myrepo) or on OCI repository (e.g. oci://localhost:5000/myrepo).
   290                                    pattern: ^(http|https|oci)://.+
   291                                    type: string
   292                                required:
   293                                  - chartName
   294                                  - chartVersion
   295                                  - url
   296                                type: object
   297                            type: object
   298                          templateCredentials:
   299                            description: DependencyCredentials holds the credentials that may be needed for templating the application.
   300                            properties:
   301                              helmCredentials:
   302                                description: HelmCredentials holds the ref to the secret with helm credentials needed to build helm dependencies. It is not required when using helm as a source, as dependencies are already prepackaged in this case. It's either username / password or a registryConfigFile can be defined.
   303                                properties:
   304                                  password:
   305                                    description: Password holds the ref and key in the secret for the Password credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   306                                    properties:
   307                                      key:
   308                                        description: The key of the secret to select from.  Must be a valid secret key.
   309                                        type: string
   310                                      name:
   311                                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   312                                        type: string
   313                                      optional:
   314                                        description: Specify whether the Secret or its key must be defined
   315                                        type: boolean
   316                                    required:
   317                                      - key
   318                                    type: object
   319                                    x-kubernetes-map-type: atomic
   320                                  registryConfigFile:
   321                                    description: RegistryConfigFile holds the ref and key in the secret for the registry credential file. The value is dockercfg file that follows the same format rules as ~/.docker/config.json The The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   322                                    properties:
   323                                      key:
   324                                        description: The key of the secret to select from.  Must be a valid secret key.
   325                                        type: string
   326                                      name:
   327                                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   328                                        type: string
   329                                      optional:
   330                                        description: Specify whether the Secret or its key must be defined
   331                                        type: boolean
   332                                    required:
   333                                      - key
   334                                    type: object
   335                                    x-kubernetes-map-type: atomic
   336                                  username:
   337                                    description: Username holds the ref and key in the secret for the username credential. The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
   338                                    properties:
   339                                      key:
   340                                        description: The key of the secret to select from.  Must be a valid secret key.
   341                                        type: string
   342                                      name:
   343                                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   344                                        type: string
   345                                      optional:
   346                                        description: Specify whether the Secret or its key must be defined
   347                                        type: boolean
   348                                    required:
   349                                      - key
   350                                    type: object
   351                                    x-kubernetes-map-type: atomic
   352                                type: object
   353                            type: object
   354                        required:
   355                          - source
   356                        type: object
   357                      version:
   358                        description: Version of the application (e.g. v1.2.3)
   359                        pattern: v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?
   360                        type: string
   361                    required:
   362                      - template
   363                      - version
   364                    type: object
   365                  conditions:
   366                    additionalProperties:
   367                      properties:
   368                        lastHeartbeatTime:
   369                          description: Last time we got an update on a given condition.
   370                          format: date-time
   371                          type: string
   372                        lastTransitionTime:
   373                          description: Last time the condition transit from one status to another.
   374                          format: date-time
   375                          type: string
   376                        message:
   377                          description: Human readable message indicating details about last transition.
   378                          type: string
   379                        observedGeneration:
   380                          description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
   381                          format: int64
   382                          type: integer
   383                        reason:
   384                          description: (brief) reason for the condition's last transition.
   385                          type: string
   386                        status:
   387                          description: Status of the condition, one of True, False, Unknown.
   388                          type: string
   389                      required:
   390                        - status
   391                      type: object
   392                    description: Conditions contains conditions an installation is in, its primary use case is status signaling between controllers or between controllers and the API
   393                    type: object
   394                  failures:
   395                    description: Failures counts the number of failed installation or updagrade. it is reset on successful reconciliation.
   396                    type: integer
   397                  helmRelease:
   398                    description: HelmRelease holds the information about the helm release installed by this application. This field is only filled if template method is 'helm'.
   399                    properties:
   400                      info:
   401                        description: Info provides information about a release.
   402                        properties:
   403                          deleted:
   404                            description: Deleted tracks when this object was deleted.
   405                            format: date-time
   406                            type: string
   407                          description:
   408                            description: Description is human-friendly "log entry" about this release.
   409                            type: string
   410                          firstDeployed:
   411                            description: FirstDeployed is when the release was first deployed.
   412                            format: date-time
   413                            type: string
   414                          lastDeployed:
   415                            description: LastDeployed is when the release was last deployed.
   416                            format: date-time
   417                            type: string
   418                          notes:
   419                            description: Notes is  the rendered templates/NOTES.txt if available.
   420                            type: string
   421                          status:
   422                            description: Status is the current state of the release. This field can take one of the values of helm.hhs/helm/v3/pkg/releases/Status.
   423                            type: string
   424                        type: object
   425                      name:
   426                        description: Name is the name of the release.
   427                        type: string
   428                      version:
   429                        description: Version is an int which represents the revision of the release.
   430                        type: integer
   431                    type: object
   432                  method:
   433                    description: Method used to install the application
   434                    enum:
   435                      - helm
   436                    type: string
   437                required:
   438                  - method
   439                type: object
   440            type: object
   441        served: true
   442        storage: true
   443        subresources:
   444          status: {}