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 #104

Merged

Conversation

mbaldessari
Copy link
Contributor

  • Upgrade ESO to v0.9.10
  • Add initial support for deploying private repos via CLI directly
  • Add support for private repo deployments via CLI
  • Fix placement of tokenSecret material
  • Fix placement of tokenSecret material in the right section
  • Upgrade ESO to v0.9.11
  • Make the container to run with the UID and GID of the user running pattern.sh
  • Error out nicely if podman is not present
  • Account for podman versions older than 4.3.0
  • Update tests after common rebase

Tested with:

    export EXTRA_HELM_OPTS="--set main.tokenSecret=private-repo --set main.tokenSecretNamespace=openshift-operators"
    ./pattern.sh make install

Note that this is currently only working with https URLs because we have
logic in the Makefile to rewrite ssh-based git URLs into https ones.
Add initial support for deploying private repos via CLI directly
A normal non-private deployment:

    ./pattern.sh make show
    helm template common/operator-install/ --name-template multicloud-gitops -f values-global.yaml --set main.git.repoURL="https://github.com/mbaldessari/multicloud-gitops.git" --set main.git.revision=private-repo-cli
    ...
    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: private-repo-cli
      gitOpsSpec:
        operatorChannel: gitops-1.8
        operatorSource: redhat-operators
      multiSourceConfig:
        enabled: true

When we set the TOKEN_SECRET AND TOKEN_NAMESPACE env variables:

    ./pattern.sh make TOKEN_SECRET=foo TOKEN_NAMESPACE=bar show
    helm template common/operator-install/ --name-template multicloud-gitops -f values-global.yaml --set main.tokenSecret=foo --set main.tokenSecretNamespace=bar --set main.git.repoURL="git@github.com:mbaldessari/multicloud-gitops.git" --set main.git.revision=private-repo-cli
    ...
    apiVersion: gitops.hybrid-cloud-patterns.io/v1alpha1
    kind: Pattern
    metadata:
      name: multicloud-gitops
      namespace: openshift-operators
    spec:
      clusterGroupName: hub
      gitSpec:
        targetRepo: git@github.com:mbaldessari/multicloud-gitops.git
        targetRevision: private-repo-cli
      gitOpsSpec:
        operatorChannel: gitops-1.8
        operatorSource: redhat-operators
      multiSourceConfig:
        enabled: true
      tokenSecret: foo
      tokenSecretNamespace: bar

In the latter case we do not rewrite the URL as it might an ssh-based
one.
Add support for private repo deployments via CLI
Fix placement of tokenSecret material
Fix placement of tokenSecret material in the right section
…ttern.sh

This allows us to drop the /root bind mount and it will also show any
errors related to paths in the proper folder. E.g. any permission
problem of KUBECONFIG files won't be shown as /root/kubeconfig (inside
the container) but as the proper path inside the /home folder.

Tested on F38, F39, RHEL8.9 and RHEL9.2
If podman is not installed we get the following unfriendly output:
[michele@rhel1]~/multicloud-gitops% ./pattern.sh
./pattern.sh: line 10: podman: command not found
./pattern.sh: line 10: podman: command not found
./pattern.sh: line 32: podman: command not found

Let's bail out and have a generic function to check for that in case
we need to add other requirements
The addition of --userns keep-id:uid=...,gid=... is supported only on
podman versions >= 4.3.0 [1]

If we have an older version, let's just keep the same logic as before.

[1] https://github.com/containers/podman/blob/main/troubleshooting.md#39-podman-run-fails-with-error-unrecognized-namespace-mode-keep-iduid1000gid1000-passed
Account for podman versions older than 4.3.0
@mbaldessari mbaldessari merged commit 99f8742 into validatedpatterns:main Jan 15, 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.

None yet

1 participant