apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: (devel)
  name: s2ibuilders.devops.kubesphere.io
spec:
  group: devops.kubesphere.io
  names:
    kind: S2iBuilder
    listKind: S2iBuilderList
    plural: s2ibuilders
    shortNames:
    - s2ib
    singular: s2ibuilder
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.runCount
      name: RunCount
      type: integer
    - jsonPath: .status.lastRunState
      name: LastRunState
      type: string
    - jsonPath: .status.lastRunName
      name: LastRunName
      type: string
    - jsonPath: .status.lastRunStartTime
      name: LastRunStartTime
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: S2iBuilder is the Schema for the s2ibuilders API
        properties:
          apiVersion:
            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'
            type: string
          kind:
            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'
            type: string
          metadata:
            type: object
          spec:
            description: S2iBuilderSpec defines the desired state of S2iBuilder
            properties:
              config:
                description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster Important: Run "make" to regenerate code after modifying this file'
                properties:
                  addHost:
                    description: AddHost Add a line to /etc/hosts for test purpose or private use in LAN. Its format is host:IP,muliple hosts can be added  by using multiple --add-host
                    items:
                      type: string
                    type: array
                  asDockerfile:
                    description: AsDockerfile indicates the path where the Dockerfile should be written instead of building a new image.
                    type: string
                  assembleUser:
                    description: AssembleUser specifies the user to run the assemble script in container
                    type: string
                  blockOnBuild:
                    description: BlockOnBuild prevents s2i from performing a docker build operation if one is necessary to execute ONBUILD commands, or to layer source code into the container for images that don't have a tar binary available, if the image contains ONBUILD commands that would be executed.
                    type: boolean
                  branchExpression:
                    description: Regular expressions, ignoring names that do not match the provided regular expression
                    type: string
                  buildVolumes:
                    description: BuildVolumes specifies a list of volumes to mount to container running the build.
                    items:
                      type: string
                    type: array
                  builderBaseImageVersion:
                    description: BuilderBaseImageVersion provides optional version information about the builder base image.
                    type: string
                  builderImage:
                    description: BuilderImage describes which image is used for building the result images.
                    type: string
                  builderImageVersion:
                    description: BuilderImageVersion provides optional version information about the builder image.
                    type: string
                  builderPullPolicy:
                    description: BuilderPullPolicy specifies when to pull the builder image
                    type: string
                  callbackUrl:
                    description: CallbackURL is a URL which is called upon successful build to inform about that fact.
                    type: string
                  cgroupLimits:
                    description: CGroupLimits describes the cgroups limits that will be applied to any containers run by s2i.
                    properties:
                      cpuPeriod:
                        format: int64
                        type: integer
                      cpuQuota:
                        format: int64
                        type: integer
                      cpuShares:
                        format: int64
                        type: integer
                      memoryLimitBytes:
                        format: int64
                        type: integer
                      memorySwap:
                        format: int64
                        type: integer
                      parent:
                        type: string
                    required:
                    - cpuPeriod
                    - cpuQuota
                    - cpuShares
                    - memoryLimitBytes
                    - memorySwap
                    - parent
                    type: object
                  contextDir:
                    description: Specify a relative directory inside the application repository that should be used as a root directory for the application.
                    type: string
                  description:
                    description: Description is a result image description label. The default is no description.
                    type: string
                  destination:
                    description: Destination specifies a location where the untar operation will place its artifacts.
                    type: string
                  displayName:
                    description: DisplayName is a result image display-name label. This defaults to the output image name.
                    type: string
                  dockerConfig:
                    description: DockerConfig describes how to access host docker daemon.
                    properties:
                      caFile:
                        description: CAFile is the certificate authority file path for a TLS connection
                        type: string
                      certFile:
                        description: CertFile is the certificate file path for a TLS connection
                        type: string
                      endPoint:
                        description: Endpoint is the docker network endpoint or socket
                        type: string
                      keyFile:
                        description: KeyFile is the key file path for a TLS connection
                        type: string
                      tlsVerify:
                        description: TLSVerify indicates if TLS peer must be verified
                        type: boolean
                      useTLS:
                        description: UseTLS indicates if TLS must be used
                        type: boolean
                    required:
                    - caFile
                    - certFile
                    - endPoint
                    - keyFile
                    - tlsVerify
                    - useTLS
                    type: object
                  dockerNetworkMode:
                    description: DockerNetworkMode is used to set the docker network setting to --net=container:<id> when the builder is invoked from a container.
                    type: string
                  dropCapabilities:
                    description: DropCapabilities contains a list of capabilities to drop when executing containers
                    items:
                      type: string
                    type: array
                  environment:
                    description: Environment is a map of environment variables to be passed to the image.
                    items:
                      description: EnvironmentSpec specifies a single environment variable.
                      properties:
                        name:
                          type: string
                        value:
                          type: string
                      required:
                      - name
                      - value
                      type: object
                    type: array
                  excludeRegExp:
                    description: ExcludeRegExp contains a string representation of the regular expression desired for deciding which files to exclude from the tar stream
                    type: string
                  export:
                    description: Export Push the result image to specify image registry in tag
                    type: boolean
                  gitSecretRef:
                    description: GitSecretRef is the BasicAuth Secret of Git Clone
                    properties:
                      name:
                        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?'
                        type: string
                    type: object
                  hasOnBuild:
                    description: HasOnBuild will be set to true if the builder image contains ONBUILD instructions
                    type: boolean
                  imageName:
                    description: ImageName Contains the registry address and reponame, tag should set by field tag alone
                    type: string
                  imageScriptsUrl:
                    description: ImageScriptsURL is the default location to find the assemble/run scripts for a builder image. This url can be a reference within the builder image if the scheme is specified as image://
                    type: string
                  imageWorkDir:
                    description: ImageWorkDir is the default working directory for the builder image.
                    type: string
                  incremental:
                    description: Incremental describes whether to try to perform incremental build.
                    type: boolean
                  incrementalAuthentication:
                    description: IncrementalAuthentication holds the authentication information for pulling the previous image from private repositories
                    properties:
                      email:
                        type: string
                      password:
                        type: string
                      secretRef:
                        description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
                        properties:
                          name:
                            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?'
                            type: string
                        type: object
                      serverAddress:
                        type: string
                      username:
                        type: string
                    type: object
                  incrementalFromTag:
                    description: IncrementalFromTag sets an alternative image tag to look for existing artifacts. Tag is used by default if this is not set.
                    type: string
                  injections:
                    description: Injections specifies a list source/destination folders that are injected to the container that runs assemble. All files we inject will be truncated after the assemble script finishes.
                    items:
                      description: VolumeSpec represents a single volume mount point.
                      properties:
                        destination:
                          description: Destination is the path to mount the volume to - absolute or relative.
                          type: string
                        keep:
                          description: Keep indicates if the mounted data should be kept in the final image.
                          type: boolean
                        source:
                          description: Source is a reference to the volume source.
                          type: string
                      type: object
                    type: array
                  isBinaryURL:
                    description: IsBinaryURL explain the type of SourceURL. If it is IsBinaryURL, it will download the file directly without using git.
                    type: boolean
                  keepSymlinks:
                    description: KeepSymlinks indicates to copy symlinks as symlinks. Default behavior is to follow symlinks and copy files by content.
                    type: boolean
                  labelNamespace:
                    description: LabelNamespace provides the namespace under which the labels will be generated.
                    type: string
                  labels:
                    additionalProperties:
                      type: string
                    description: Labels specify labels and their values to be applied to the resulting image. Label keys must have non-zero length. The labels defined here override generated labels in case they have the same name.
                    type: object
                  layeredBuild:
                    description: LayeredBuild describes if this is build which layered scripts and sources on top of BuilderImage.
                    type: boolean
                  nodeAffinityKey:
                    description: The key of Node Affinity.
                    type: string
                  nodeAffinityValues:
                    description: The values of Node Affinity.
                    items:
                      type: string
                    type: array
                  outputBuildResult:
                    description: Whether output build result to status.
                    type: boolean
                  outputImageName:
                    description: OutputImageName is a result image name without tag, default is latest. tag will append to ImageName in the end
                    type: string
                  preserveWorkingDir:
                    description: PreserveWorkingDir describes if working directory should be left after processing.
                    type: boolean
                  previousImagePullPolicy:
                    description: PreviousImagePullPolicy specifies when to pull the previously build image when doing incremental build
                    type: string
                  pullAuthentication:
                    description: PullAuthentication holds the authentication information for pulling the Docker images from private repositories
                    properties:
                      email:
                        type: string
                      password:
                        type: string
                      secretRef:
                        description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
                        properties:
                          name:
                            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?'
                            type: string
                        type: object
                      serverAddress:
                        type: string
                      username:
                        type: string
                    type: object
                  pushAuthentication:
                    description: PullAuthentication holds the authentication information for pulling the Docker images from private repositories
                    properties:
                      email:
                        type: string
                      password:
                        type: string
                      secretRef:
                        description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
                        properties:
                          name:
                            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?'
                            type: string
                        type: object
                      serverAddress:
                        type: string
                      username:
                        type: string
                    type: object
                  removePreviousImage:
                    description: RemovePreviousImage describes if previous image should be removed after successful build. This applies only to incremental builds.
                    type: boolean
                  revisionId:
                    description: The RevisionId is a branch name or a SHA-1 hash of every important thing about the commit
                    type: string
                  runImage:
                    description: RunImage will trigger a "docker run ..." invocation of the produced image so the user can see if it operates as he would expect
                    type: boolean
                  runtimeArtifacts:
                    description: RuntimeArtifacts specifies a list of source/destination pairs that will be copied from builder to a runtime image. Source can be a file or directory. Destination must be a directory. Regardless whether it is an absolute or relative path, it will be placed into image's WORKDIR. Destination also can be empty or equals to ".", in this case it just refers to a root of WORKDIR. In case it's empty, S2I will try to get this list from io.openshift.s2i.assemble-input-files label on a RuntimeImage.
                    items:
                      description: VolumeSpec represents a single volume mount point.
                      properties:
                        destination:
                          description: Destination is the path to mount the volume to - absolute or relative.
                          type: string
                        keep:
                          description: Keep indicates if the mounted data should be kept in the final image.
                          type: boolean
                        source:
                          description: Source is a reference to the volume source.
                          type: string
                      type: object
                    type: array
                  runtimeAuthentication:
                    description: RuntimeAuthentication holds the authentication information for pulling the runtime Docker images from private repositories.
                    properties:
                      email:
                        type: string
                      password:
                        type: string
                      secretRef:
                        description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
                        properties:
                          name:
                            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?'
                            type: string
                        type: object
                      serverAddress:
                        type: string
                      username:
                        type: string
                    type: object
                  runtimeImage:
                    description: RuntimeImage specifies the image that will be a base for resulting image and will be used for running an application. By default, BuilderImage is used for building and running, but the latter may be overridden.
                    type: string
                  runtimeImagePullPolicy:
                    description: RuntimeImagePullPolicy specifies when to pull a runtime image.
                    type: string
                  scriptDownloadProxyConfig:
                    description: ScriptDownloadProxyConfig optionally specifies the http and https proxy to use when downloading scripts
                    properties:
                      httpProxy:
                        type: string
                      httpsProxy:
                        type: string
                    type: object
                  scriptsUrl:
                    description: ScriptsURL is a URL describing where to fetch the S2I scripts from during build process. This url can be a reference within the builder image if the scheme is specified as image://
                    type: string
                  secretCode:
                    description: SecretCode
                    type: string
                  securityOpt:
                    description: SecurityOpt are passed as options to the docker containers launched by s2i.
                    items:
                      type: string
                    type: array
                  sourceUrl:
                    description: SourceURL is  url of the codes such as https://github.com/a/b.git
                    type: string
                  tag:
                    description: Tag is a result image tag name.
                    type: string
                  taintKey:
                    description: The name of taint.
                    type: string
                  usage:
                    description: Usage allows for properly shortcircuiting s2i logic when `s2i usage` is invoked
                    type: boolean
                  workingDir:
                    description: WorkingDir describes temporary directory used for downloading sources, scripts and tar operations.
                    type: string
                  workingSourceDir:
                    description: WorkingSourceDir describes the subdirectory off of WorkingDir set up during the repo download that is later used as the root for ignore processing
                    type: string
                required:
                - imageName
                - sourceUrl
                type: object
              fromTemplate:
                description: FromTemplate define some inputs from user
                properties:
                  builderImage:
                    description: BaseImage specify which version of this template to use
                    type: string
                  name:
                    description: Name specify a template to use, so many fields in Config can left empty
                    type: string
                  parameters:
                    description: Parameters must use with `template`, fill some parameters which template will use
                    items:
                      properties:
                        defaultValue:
                          type: string
                        description:
                          type: string
                        key:
                          type: string
                        optValues:
                          items:
                            type: string
                          type: array
                        required:
                          type: boolean
                        type:
                          type: string
                        value:
                          type: string
                      type: object
                    type: array
                type: object
            type: object
          status:
            description: S2iBuilderStatus defines the observed state of S2iBuilder
            properties:
              lastRunName:
                description: LastRunState return the name of the newest run of this builder
                type: string
              lastRunStartTime:
                description: LastRunStartTime return the startTime of the newest run of this builder
                format: date-time
                type: string
              lastRunState:
                description: LastRunState return the state of the newest run of this builder
                type: string
              runCount:
                description: RunCount represent the sum of s2irun of this builder
                type: integer
            required:
            - runCount
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
