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: {}