Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

common automatic update #111

Merged

Conversation

mbaldessari
Copy link
Contributor

  • Upgrade ESO to v0.9.12
  • Update vault image to 1.15.5-ubi
  • Use gitops-1.11 in acm as well
  • Small gitops channel cleanups
  • Upgrade namespaced argocd version to v1beta1
  • Stop using OpenShiftControllerManager lookups
  • Bump azure/setup-helm from 3 to 4
  • Upgrade ESO to v0.9.13
  • Upgrade vault to 1.15.6
  • Bind mount /etc/pki in the wrapper
  • Properly error out in preview-all when we cannot connect to the cluster
  • Only include values files if they do exist in preview.sh
  • Do not error out in preview when kustomize: true
  • Also pass EXTRA_PLAYBOOK_OPTS environment setting
  • Use oc kustomize
  • Print out application being parsed for easier debugging
  • Add .global.secretStore.backend in the clustergroup schema
  • Fix check for secretStore.backend
  • Introduce a generic parameter override via the EXTRA_ARGS env variable
  • Allow overriding the oc lookups in preview.sh
  • Always include values-global.yaml and values-.yaml
  • Add help and message clarifying that preview has certain limits
  • Add clustergroup support to preview target
  • Fix preview when the application's index name is not the same as the name attribute
  • Force strings in extraParametersNested
  • In ACM policies do not use $ARGOCD_APP_SOURCE_ variables*
  • Add support for custom CAs
  • Update tests
  • Support for issue #459
  • Drop unused piece of schema json
  • Small cleanup to remove unneeded log messages
  • Support for cluster-wide proxy
  • Update ESO to 0.9.14
  • Update CRD from operator v0.0.44
  • Expose main.experimentalCapabilities in operator-install
  • Release clustergroup v0.8.3
  • Support remote repoURL when previewing templates
  • Moved CLUSTERGROUP declaration to restore make preview-% functionality
  • Namespace argocd.argoproj.io/managed-by label issue
  • Fixed indenting and duplicate entries in application-policies.yaml
  • Add main.experimentalCapabilities to values.schema.json
  • Release clustergroup v0.8.4
  • Move the CLUSTERGROUP env variable for previews inside its section
  • Fix up tests after upstream PR merge
  • Drop old comments
  • bug: Fix to generate OperatorGroup definition when namespaces definition has labels
  • Try fallbacks for /etc/pki when it does not exist
  • Fix for multiple OperatorGroup rendering
  • Updated tests for CI
  • Update ESO to 0.9.16
  • Updated vault-helm to v0.28.0
  • Use --recurse-submodules when cloning
  • Drop support for IIB on OCP 4.12
  • Stop saving stderr in a file when running skopeo
  • Rearchitect the code so we can print out the actual error
  • Check for prereqs for IIB
  • Rework IIB loading support
  • Switch to gitops-1.12
  • Add overrides for MCE IIB
  • Update README for IIB changes
  • Release clustergroup v0.8.5
  • Update tests after common rebase

mbaldessari and others added 30 commits February 9, 2024 17:02
This fixes a few CVEs.

Tested on MCG.
This is mainly for consistency reasons as the value is taken from
main.gitops anyways.
Mainly for consistency reasons. gitops-1.11 is already the default
Upgrade namespaced argocd version to v1beta1
When applying the policy to install the cluster-wide argo on regional
clusters, we do some lookups() on the regional cluster in order to
pass the version values, domain names, etc.

To get the cluster version we were using the OpenShiftControllerManager
which is problematic because it does not exist on hyper-shift clusters.

Let's switch to use the ClusterVersion.status.history[0].version entry.

The only smaller caveat is that due to limitations in go templates +
sprig functions, we cannot really take the last version only when the
state is "Completed", but we simply take the last version.

This means that during a cluster upgrade on a regional cluster, we will
include values of the version the cluster is upgrading to, which is
less than ideal, but it should eventually converge in any case.

For reference the function that guarantees that the ordering of the
history status in ClusterVersion is preserved is here:
https://pkg.go.dev/github.com/openshift/api/config/v1#ClusterVersionStatus

Tested on Lester's cluster and on a local cluster of mine.

Co-Authored-By: Lester Claudio <claudiol@redhat.com>
Stop using OpenShiftControllerManager lookups
Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 3 to 4.
- [Release notes](https://github.com/azure/setup-helm/releases)
- [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md)
- [Commits](Azure/setup-helm@v3...v4)

---
updated-dependencies:
- dependency-name: azure/setup-helm
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…ons/azure/setup-helm-4

Bump azure/setup-helm from 3 to 4
This is useful whenever a custom CA is installed on the system and is
needed to connect to a remote cluster.
Bind mount /etc/pki in the wrapper
Before:

    $ ./pattern.sh make preview-all
    make -f common/Makefile preview-all
    make[1]: Entering directory '/home/michele/Engineering/cloud-patterns/multicloud-gitops'
    error: Missing or incomplete configuration info.  Please point to an existing, complete config file:

      1. Via the command-line flag --kubeconfig
      2. Via the KUBECONFIG environment variable
      3. In your home directory as ~/.kube/config

    To view or setup config directly use the 'config' command.
    error: Missing or incomplete configuration info.  Please point to an existing, complete config file:

      1. Via the command-line flag --kubeconfig
      2. Via the KUBECONFIG environment variable
      3. In your home directory as ~/.kube/config

    To view or setup config directly use the 'config' command.

    ...This goes on for many more iterations...

After:

    $ ./pattern.sh make preview-all
    make -f common/Makefile preview-all
    make[1]: Entering directory '/home/michele/Engineering/cloud-patterns/multicloud-gitops'
    Could not access the cluster:
    error: Missing or incomplete configuration info.  Please point to an existing, complete config file:

      1. Via the command-line flag --kubeconfig
      2. Via the KUBECONFIG environment variable
      3. In your home directory as ~/.kube/config

    To view or setup config directly use the 'config' command.
    make[1]: *** [common/Makefile:59: preview-all] Error 1
    make[1]: Leaving directory '/home/michele/Engineering/cloud-patterns/multicloud-gitops'
    make: *** [Makefile:12: preview-all] Error 2
This is because in helm we use "ignoreMissingValueFiles: true". I.e. we
just ignore non existing value files. Let's do the same for the
preview.sh script.

Before:

    ❯ make preview-all
    make -f common/Makefile preview-all
    make[1]: Entering directory '/home/michele/Engineering/cloud-patterns/multicloud-gitops'
    Error: open /home/michele/Engineering/cloud-patterns/multicloud-gitops/overrides/values-None.yaml: no such file or directory
    Error: open /home/michele/Engineering/cloud-patterns/multicloud-gitops/overrides/values-None.yaml: no such file or directory
    Error: open /home/michele/Engineering/cloud-patterns/multicloud-gitops/overrides/values-None.yaml: no such file or directory
    Error: open /home/michele/Engineering/cloud-patterns/multicloud-gitops/overrides/values-None.yaml: no such file or directory
    Error: open /home/michele/Engineering/cloud-patterns/multicloud-gitops/overrides/values-None.yaml: no such file or directory
    common/scripts/preview.sh: eval: line 79: unexpected EOF while looking for matching `"'
    common/scripts/preview.sh: eval: line 79: unexpected EOF while looking for matching `"'
    common/scripts/preview.sh: eval: line 79: unexpected EOF while looking for matching `"'
    make[1]: *** [common/Makefile:59: preview-all] Error 2
    make[1]: Leaving directory '/home/michele/Engineering/cloud-patterns/multicloud-gitops'
    make: *** [Makefile:12: preview-all] Error 2

After:

    ❯ make preview-all > /dev/null ; echo $?
    0
Properly error out in preview-all when we cannot connect to the cluster
…value-files

Only include values files if they do exist in preview.sh
When `kustomize: true` simply take the path and call `kustomize build
<path>`. In any other case keep using helm for templating.

Before:
    ...
    + common/scripts/preview.sh hub compliance-operator https://github.com/mbaldessari/multicloud-gitops.git preview-fixes
    Error: Chart.yaml file is missing

After:
    ...
    + common/scripts/preview.sh hub compliance-operator https://github.com/mbaldessari/multicloud-gitops.git preview-fixes
    apiVersion: console.openshift.io/v1
    kind: ConsoleNotification
    metadata:
      name: purpose-banner
    spec:
      backgroundColor: '#ff0000'
      color: '#fff'
      location: BannerTop
      text: HUBOPS
Also pass EXTRA_PLAYBOOK_OPTS environment setting
That is what we have inside the utility container, so let's just rely on
that
Do not error out in preview when kustomize: true
claudiol and others added 29 commits April 18, 2024 08:58
bug: Fix to generate OperatorGroup definition when namespaces definition has labels
Try fallbacks for /etc/pki when it does not exist
- Fixed issue with rendering multiple OperatorGroup.  Added the beginning (---) to signal document start.
- Updated the applications.yaml to include beginning (---) to signal document start.
In case a git repo has some things split over submodules, let's clone
those too.

The version of git in the imperative image is currently:
sh-5.1# git version
git version 2.39.3

Tested with:
sh-5.1# git clone --recurse-submodules --single-branch --branch main --depth 1 -- "https://github.com/validatedpatterns/multicloud-gitops" /tmp/
Cloning into '/tmp'...
remote: Enumerating objects: 426, done.
remote: Counting objects: 100% (426/426), done.
remote: Compressing objects: 100% (343/343), done.
remote: Total 426 (delta 87), reused 221 (delta 40), pack-reused 0
Receiving objects: 100% (426/426), 545.98 KiB | 1.78 MiB/s, done.
Resolving deltas: 100% (87/87), done.

Co-Authored-By: Sergio Garcia Martinez <sgarcia@redhat.com>
Use --recurse-submodules when cloning
The last job we ran with that for IIB was more than 4 months ago.
This adds multiple IIB support in order to cater for the ACM IIB case,
where the MCE operator might be in another IIB completely.

To load multiple IIB for different operators, one needs to set the env
variables as follows:

    export OPERATOR=advanced-cluster-management,multicluster-engine
    export INDEX_IMAGES=registry-proxy.engineering.redhat.com/rh-osbs/iib:713808,registry-proxy.engineering.redhat.com/rh-osbs/iib:718034

It is implied that the first IIB is for the first operator in the list,
and the second one for the latter.

Tested gitops-iib and it all worked with no changes.
We need to be able to explicitely override the Source and the Channel
used to install the MCE multicluster-engine operator. The reason for
this is that when we install ACM from an IIB, the default channel that
will be used for MCE won't be present in the IIB, so we need to be able
to be flexible in determining where the MCE gets installed from
(sourcecatalog and channel)

We default to redhat-operators because otherwise when installing gitops
via IIB the ACM operator finds a channel for MCE that does not exist, so
we force the source all the time.
@mbaldessari mbaldessari merged commit 350d323 into validatedpatterns:main May 2, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants