--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.1 name: projectinitializes.gitops.freeleaps.com spec: group: gitops.freeleaps.com names: kind: ProjectInitialize listKind: ProjectInitializeList plural: projectinitializes singular: projectinitialize scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: ProjectInitialize is the Schema for the projectinitializes 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: ProjectInitializeSpec defines the desired state of ProjectInitialize properties: argo: description: Argo defines the desired state of Argo Project and Argo Application properties: branch: description: Branch defines the Git branch of this Argo Application type: string name: description: Name of the Argo Application type: string namespace: description: Namespace of the Argo Application to deploy type: string project: description: Name of the Argo Project type: string syncPolicy: description: SyncPolicy defines the sync policy settings of Argo Application properties: automated: description: Automated enables the auto sync of Argo Application type: boolean prune: description: Prune enables the auto pruning of Argo Application type: boolean selfHeal: description: SelfHeal enables the auto self healing of Argo Application type: boolean type: object type: object ci: description: ContinuousIntegration defines the desired state of Continuous Integration (CI) properties: commitMessageLintEnabled: description: CommitMessageLintEnabled defines the existence of the commit message lint, set to false to skip the commit message lint. type: boolean components: description: Components defines the CI components items: description: CIComponentSpec defines the desired state of CI component properties: buildAgentImage: description: BuildAgentImage defines the build agent image of the CI component type: string buildArtifacts: description: BuildArtifacts defines the build artifacts of the CI component items: type: string type: array buildCacheEnabled: description: BuildCacheEnabled defines the existence of the build cache, set to false to skip the build caching. type: boolean buildCommand: description: BuildCommand defines the build command of the CI component type: string dependenciesManager: description: DependenciesManager defines the dependencies manager of the CI component type: string imageBuilder: description: ImageBuilder defines the image builder of the CI component properties: buildContextRoot: description: BuildContextRoot defines the build context root of the image builder type: string dockerfile: description: Dockerfile defines the Dockerfile path of the image builder type: string name: description: Name defines the name of the image builder type: string registry: description: Registry defines the image registry of the image builder properties: credentials: description: Credentials defines the credentials of the image registry properties: password: description: Password defines the password of the image registry credential type: string username: description: Username defines the username of the image registry credential type: string type: object url: description: URL defines the URL of the image registry type: string type: object releaseArchitectures: description: ReleaseArchitectures defines the release architectures of the image builder items: type: string type: array repository: description: Repository defines the repository of the image builder type: string type: description: Type defines the type of the image builder type: string type: object language: description: Language defines the language of the CI component type: string name: description: Name defines the name of the CI component type: string npmPackageJsonFile: description: NPMPackageJsonFile defines the path of the npm package.json file type: string root: description: Root defines the root path of the CI component type: string semanticReleaseEnabled: description: SemanticReleaseEnabled defines the existence of the semantic release, set to false to skip the semantic release. type: boolean type: object type: array executeMode: description: ExecuteMode defines the CI execute mode type: string type: object helm: description: Helm defines the desired state of Helm generation properties: components: description: Components defines the Helm components items: description: HelmComponentSpec defines the desired state of Helm component properties: configs: description: Configs defines the configurations of the Helm component items: description: HelmComponentConfigSpec defines the desired state of Helm component configuration properties: data: description: Data defines the data of the Helm component configuration items: description: EnvVar represents an environment variable present in a Container. properties: name: description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: description: |- Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". type: string valueFrom: description: Source for the environment variable's value. Cannot be used if value is not empty. properties: configMapKeyRef: description: Selects a key of a ConfigMap. properties: key: description: The key to select. type: string name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: description: |- Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. properties: apiVersion: description: Version of the schema the FieldPath is written in terms of, defaults to "v1". type: string fieldPath: description: Path of the field to select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. properties: containerName: description: 'Container name: required for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string description: Specifies the output format of the exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: description: Selects a key of a secret in the pod's namespace properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array name: description: Name defines the name of the Helm component configuration type: string type: description: Type defines the type of the Helm component configuration type: string type: object type: array image: description: Image defines the image of the Helm component properties: imagePullPolicy: description: PullPolicy defines the pull policy of the Helm component image type: string name: description: Name defines the name of the Helm component image type: string registry: description: Registry defines the image registry of the Helm component image type: string repository: description: Repository defines the repository of the Helm component image type: string tag: description: Tag defines the tag of the Helm component image type: string type: object ingresses: description: Ingresses defines the ingresses of the Helm component items: description: HelmComponentIngressSpec defines the desired state of Helm component ingress properties: class: description: Class defines the ingress class of the Helm component ingress type: string host: description: Host defines the host of the Helm component ingress type: string name: description: Name defines the name of the Helm component ingress type: string rules: description: Rules defines the route rules of the Helm component ingress items: description: |- HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend. properties: backend: description: |- backend defines the referenced service endpoint to which the traffic will be forwarded to. properties: resource: description: |- resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with "Service". properties: apiGroup: description: |- APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic service: description: |- service references a service as a backend. This is a mutually exclusive setting with "Resource". properties: name: description: |- name is the referenced service. The service must exist in the same namespace as the Ingress object. type: string port: description: |- port of the referenced service. A port name or port number is required for a IngressServiceBackend. properties: name: description: |- name is the name of the port on the Service. This is a mutually exclusive setting with "Number". type: string number: description: |- number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with "Name". format: int32 type: integer type: object x-kubernetes-map-type: atomic required: - name type: object type: object path: description: |- path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value "Exact" or "Prefix". type: string pathType: description: |- pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is done on a path element by element basis. A path element refers is the list of labels in the path split by the '/' separator. A request is a match for path p if every p is an element-wise prefix of p of the request path. Note that if the last element of the path is a substring of the last element in request path, it is not a match (e.g. /foo/bar matches /foo/bar/baz, but does not match /foo/barbaz). * ImplementationSpecific: Interpretation of the Path matching is up to the IngressClass. Implementations can treat this as a separate PathType or treat it identically to Prefix or Exact path types. Implementations are required to support all path types. type: string required: - backend - pathType type: object type: array tls: description: TLS defines the TLS of the Helm component ingress properties: exists: description: Exists defines the existence of the Helm component ingress TLS, set to false to skip the Helm component ingress TLS auto creation. type: boolean issuerRef: description: IssuerRef defines the issuer reference of the Helm component ingress TLS properties: group: description: Group of the resource being referred to. type: string kind: description: Kind of the resource being referred to. type: string name: description: Name of the resource being referred to. type: string required: - name type: object name: description: Name defines the name of the Helm component ingress TLS type: string secretRef: description: SecretRef defines the secret reference of the Helm component ingress TLS properties: name: description: name is unique within a namespace to reference a secret resource. type: string namespace: description: namespace defines the space within which the secret name must be unique. type: string type: object x-kubernetes-map-type: atomic type: object type: object type: array name: description: Name defines the name of the Helm component type: string ports: description: Chart defines the chart of the Helm component items: description: ContainerPort represents a network port in a single container. properties: containerPort: description: |- Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. format: int32 type: integer hostIP: description: What host IP to bind the external port to. type: string hostPort: description: |- Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. format: int32 type: integer name: description: |- If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. type: string protocol: default: TCP description: |- Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". type: string required: - containerPort type: object type: array probes: description: Probes defines the probes of the Helm component properties: liveness: description: Liveness defines the liveness probe of the Helm component properties: config: description: Config defines the configuration of the Helm component probe properties: failureThreshold: description: FailureThreshold defines the failure threshold of the Helm component probe format: int32 type: integer initialDelaySeconds: description: InitialDelaySeconds defines the initial delay seconds of the Helm component probe format: int32 type: integer path: description: Path defines the path of the Helm component probe type: string periodSeconds: description: PeriodSeconds defines the period seconds of the Helm component probe format: int32 type: integer port: description: Port defines the port of the Helm component probe format: int32 type: integer successThreshold: description: SuccessThreshold defines the success threshold of the Helm component probe format: int32 type: integer terminationGracePeriodSeconds: description: TerminationGracePeriodSeconds defines the termination grace period seconds of the Helm component probe format: int64 type: integer timeoutSeconds: description: TimeoutSeconds defines the timeout seconds of the Helm component probe format: int32 type: integer type: object type: description: Type defines the type of the Helm component probe type: string type: object readiness: description: Readiness defines the readiness probe of the Helm component properties: config: description: Config defines the configuration of the Helm component probe properties: failureThreshold: description: FailureThreshold defines the failure threshold of the Helm component probe format: int32 type: integer initialDelaySeconds: description: InitialDelaySeconds defines the initial delay seconds of the Helm component probe format: int32 type: integer path: description: Path defines the path of the Helm component probe type: string periodSeconds: description: PeriodSeconds defines the period seconds of the Helm component probe format: int32 type: integer port: description: Port defines the port of the Helm component probe format: int32 type: integer successThreshold: description: SuccessThreshold defines the success threshold of the Helm component probe format: int32 type: integer terminationGracePeriodSeconds: description: TerminationGracePeriodSeconds defines the termination grace period seconds of the Helm component probe format: int64 type: integer timeoutSeconds: description: TimeoutSeconds defines the timeout seconds of the Helm component probe format: int32 type: integer type: object type: description: Type defines the type of the Helm component probe type: string type: object type: object replicas: description: Replica defines the replica of the Helm component format: int32 type: integer resources: description: Resources defines the resources of the Helm component properties: limits: description: Limits defines the limits of the Helm component resource requirements properties: cpu: description: CPU defines the CPU of the Helm component resource setting type: string memory: description: Memory defines the memory of the Helm component resource setting type: string type: object requests: description: Requests defines the requests of the Helm component resource requirements properties: cpu: description: CPU defines the CPU of the Helm component resource setting type: string memory: description: Memory defines the memory of the Helm component resource setting type: string type: object type: object services: description: Services defines the services of the Helm component items: description: HelmComponentServiceSpec defines the desired state of Helm component service properties: name: description: Name defines the name of the Helm component service type: string port: description: Port defines the port of the Helm component service format: int32 type: integer targetPort: description: TargetPort defines the target port of the Helm component service format: int32 type: integer type: description: Type defines the type of the Helm component service type: string type: object type: array type: object type: array generate: description: Generate defines the existence of the Helm generation, set to false to skip the Helm generation. type: boolean global: description: GlobalValues defines the Helm global values properties: nodeSelector: additionalProperties: type: string description: NodeSelector defines the node selector of the Helm global values type: object registry: description: Registry defines the image registry of the Helm global values type: string repository: description: Repository defines the repository of the Helm global values type: string type: object metadata: description: Metadata defines the Helm metadata properties: description: description: Description defines the description of the Helm chart type: string name: description: Name defines the name of the Helm chart type: string type: object type: object repository: description: Repository defines the desired state of project's Git repository properties: hookRegister: description: HookRegister defines the Git repository hook registration properties: enabled: description: Enabled defines the existence of the Git repository hook registration, set to false to skip the Git repository hook registration. type: boolean events: description: Events defines the Git repository hook events items: description: RepositoryHookEventSpec defines the desired state of project's Git repository hook event properties: config: description: Config defines the Git repository hook event configuration properties: reviewersIncludesGroups: description: ReviewersIncludesGroups defines the groups that includes the reviewers of the Git repository hook event type: string triggerGroups: description: TriggerGroups defines the groups that trigger the Git repository hook event type: string type: object event: type: string type: object type: array type: object name: description: Name defines the name of the Git repository type: string plugin: description: Plugin defines the Git repository plugin type: string pluginConfig: additionalProperties: type: string description: PluginConfig defines the Git repository plugin configuration type: object project: description: Project defines the project of the Git repository type: string registerToArgo: description: RegisterToArgo defines the existence of the Git repository registration to Argo, set to false to skip the Git repository registration to Argo. type: boolean type: description: Type defines the type of the Git repository type: string type: object type: object status: description: ProjectInitializeStatus defines the observed state of ProjectInitialize properties: conditions: description: Conditions defines the observed conditions of the ProjectInitialize items: description: Condition contains details for one aspect of the current state of this API Resource. properties: lastTransitionTime: description: |- lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: |- message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: 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. format: int64 minimum: 0 type: integer reason: description: |- reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array ready: description: Ready defines the readiness of the ProjectInitialize type: boolean type: object type: object served: true storage: true subresources: status: {}