Skip to content

Showing the whole manifests at installation is probably a bit too verbose #67

@mbaldessari

Description

@mbaldessari

So when you deploy you get all the initial yaml printed out to stdout by default:

==> Applying the following manifest to the cluster:

---
# Source: pattern-install/crds/gitops.hybrid-cloud-patterns.io_patterns.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  name: patterns.gitops.hybrid-cloud-patterns.io
spec:
  group: gitops.hybrid-cloud-patterns.io
  names:
    kind: Pattern
    listKind: PatternList
    plural: patterns
    shortNames:
    - patt
    singular: pattern
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.lastStep
      name: Step
      priority: 1
      type: string
    - jsonPath: .status.lastError
      name: Error
      priority: 2
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Pattern is the Schema for the patterns 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: PatternSpec defines the desired state of Pattern
            properties:
              analyticsUUID:
                description: Analytics UUID. Leave empty to autogenerate a random
                  one. Not PII information
                type: string
              clusterGroupName:
                type: string
              experimentalCapabilities:
                description: Comma separated capabilities to enable certain experimental
                  features
                type: string
              extraParameters:
                description: |-
                  .Name is dot separated per the helm --set syntax, such as:
                    global.something.field
                items:
                  properties:
                    name:
                      type: string
                    value:
                      type: string
                  required:
                  - name
                  - value
                  type: object
                type: array
              extraValueFiles:
                description: URLs to additional Helm parameter files
                items:
                  type: string
                type: array
              gitOpsSpec:
                properties:
                  manualSync:
                    description: 'Require manual intervention before Argo will sync
                      new content. Default: False'
                    type: boolean
                type: object
              gitSpec:
                properties:
                  hostname:
                    description: Optional. FQDN of the git server if automatic parsing
                      from TargetRepo is broken
                    type: string
                  inClusterGitServer:
                    default: false
                    description: (EXPERIMENTAL) Enable in-cluster git server (avoids
                      the need of forking the upstream repository)
                    type: boolean
                  originRepo:
                    description: |-
                      Upstream git repo containing the pattern to deploy. Used when in-cluster fork to point to the upstream pattern repository.
                      Takes precedence over TargetRepo
                    type: string
                  originRevision:
                    description: (DEPRECATED) Branch, tag or commit in the upstream
                      git repository. Does not support short-sha's. Default to HEAD
                    type: string
                  pollInterval:
                    default: 180
                    description: 'Interval in seconds to poll for drifts between origin
                      and target repositories. Default: 180 seconds'
                    type: integer
                  targetRepo:
                    description: Git repo containing the pattern to deploy. Must use
                      https/http or, for ssh, git@server:foo/bar.git
                    type: string
                  targetRevision:
                    description: 'Branch, tag, or commit to deploy.  Does not support
                      short-sha''s. Default: HEAD'
                    type: string
                  tokenSecret:
                    description: |-
                      Optional. K8s secret name where the info for connecting to git can be found. The supported secrets are modeled after the
                      private repositories in argo (https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#repositories)
                      currently ssh and username+password are supported
                    type: string
                  tokenSecretNamespace:
                    description: Optional. K8s secret namespace where the token for
                      connecting to git can be found
                    type: string
                type: object
              multiSourceConfig:
                properties:
                  clusterGroupChartGitRevision:
                    default: main
                    description: |-
                      The git reference when deploying the clustergroup helm chart directly from a git repo
                      Defaults to 'main'. (Only used when developing the clustergroup helm chart)
                    type: string
                  clusterGroupChartVersion:
                    description: Which chart version for the clustergroup helm chart.
                      Defaults to 0.8.*
                    type: string
                  clusterGroupGitRepoUrl:
                    description: |-
                      The url when deploying the clustergroup helm chart directly from a git repo
                      Defaults to '' which means not used (Only used when developing the clustergroup helm chart)
                    type: string
                  enabled:
                    default: true
                    description: (EXPERIMENTAL) Enable multi-source support when deploying
                      the clustergroup argo application
                    type: boolean
                  helmRepoUrl:
                    description: The helm chart url to fetch the helm charts from
                      in order to deploy the pattern. Defaults to https://charts.validatedpatterns.io/
                    type: string
                type: object
            required:
            - clusterGroupName
            - gitSpec
            type: object
          status:
            description: PatternStatus defines the observed state of Pattern
            properties:
              analyticsSent:
                default: 0
                type: integer
              analyticsUUID:
                type: string
              appClusterDomain:
                type: string
              applications:
                items:
                  description: |-
                    PatternApplicationInfo defines the Applications
                    Status for the Pattern.
                    This structure is part of the PatternStatus as an array
                    The Application Status will be included as part of the Observed state of Pattern
                  properties:
                    healthMessage:
                      type: string
                    healthStatus:
                      type: string
                    name:
                      type: string
                    namespace:
                      type: string
                    syncStatus:
                      type: string
                  type: object
                type: array
              clusterDomain:
                type: string
              clusterID:
                type: string
              clusterName:
                type: string
              clusterPlatform:
                type: string
              clusterVersion:
                type: string
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of deployment condition.
                      type: string
                  required:
                  - lastUpdateTime
                  - status
                  - type
                  type: object
                type: array
              lastError:
                description: Last error encountered by the pattern
                type: string
              lastStep:
                description: Last action related to the pattern
                type: string
              path:
                type: string
              version:
                description: Number of updates to the pattern
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: pattern-install/templates/pattern-operator-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: patterns-operator-config
  namespace: openshift-operators
data:
  gitops.catalogSource: redhat-operators
  gitops.channel: gitops-1.18
  gitea.chartName: gitea
  gitea.helmRepoUrl: https://charts.validatedpatterns.io/
  gitea.chartVersion: 0.0.*
  analytics.enabled: true

  # gitops.sourceNamespace: GitOpsDefaultCatalogSourceNamespace
  # gitops.installApprovalPlan: GitOpsDefaultApprovalPlan
  # gitops.ManualSync: GitOpsDefaultManualSync
  # gitops.name: GitOpsDefaultPackageName
---
# Source: pattern-install/templates/pattern.yaml
apiVersion: gitops.hybrid-cloud-patterns.io/v1alpha1
kind: Pattern
metadata:
  name: multicloud-gitops
  namespace: openshift-operators
spec:
  clusterGroupName: hub
  gitSpec: 
    targetRepo: https://github.com/mbaldessari/multicloud-gitops.git
    targetRevision: v3 
  multiSourceConfig:
    enabled: true 
    clusterGroupChartVersion: 0.9.* 
  analyticsUUID: vp-team-bandini
---
# Source: pattern-install/templates/subscription.yaml
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: patterns-operator
  namespace: openshift-operators
  labels:
    operators.coreos.com/patterns-operator.openshift-operators: 
spec:
  channel: fast
  installPlanApproval: Automatic
  name: patterns-operator
  source: community-operators
  sourceNamespace: openshift-marketplace
==> Installation succeeded!

I am wondering if this isn't just too much and we should either just save it in a file and print a couple of lines about what happened (what objects were applied and maybe tell the user that the full yaml is in /tmp/xyz)?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions