Skip to content

Commit 4a4add3

Browse files
authored
Pin the OCM version for add-ons (#280)
* Pin the OCM version for add-ons Signed-off-by: Dale Haiducek <[email protected]> * Adapt for backward compatibility Add back individual sync controllers so that versions prior to v0.9.0 can deploy. This reverts and modifies commit 257c6fd Signed-off-by: Dale Haiducek <[email protected]> Signed-off-by: Dale Haiducek <[email protected]>
1 parent acb1e52 commit 4a4add3

File tree

11 files changed

+86
-14
lines changed

11 files changed

+86
-14
lines changed

pkg/cmd/install/hubaddon/cmd.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@ func NewCmd(clusteradmFlags *genericclioptionsclusteradm.ClusteradmFlags, stream
4848
}
4949

5050
cmd.Flags().StringVar(&o.names, "names", "", "Names of the built-in add-on to install (comma separated). The built-in add-ons are: application-manager, governance-policy-framework")
51-
cmd.Flags().StringVar(&o.values.Namespace, "namespace", "open-cluster-management", "Namespace of the built-in add-on to install. Default to open-cluster-management")
51+
cmd.Flags().StringVar(&o.values.Namespace, "namespace", "open-cluster-management", "Namespace of the built-in add-on to install. Defaults to open-cluster-management")
5252
cmd.Flags().StringVar(&o.outputFile, "output-file", "", "The generated resources will be copied in the specified file")
53+
cmd.Flags().StringVar(&o.bundleVersion, "bundle-version", "default", "The image version tag to use when deploying the hub add-on")
5354

5455
return cmd
5556
}

pkg/cmd/install/hubaddon/exec.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"k8s.io/client-go/kubernetes"
1515
"open-cluster-management.io/clusteradm/pkg/cmd/install/hubaddon/scenario"
1616
"open-cluster-management.io/clusteradm/pkg/helpers"
17+
"open-cluster-management.io/clusteradm/pkg/helpers/version"
1718
)
1819

1920
const (
@@ -44,6 +45,18 @@ func (o *Options) validate() error {
4445
}
4546
}
4647

48+
versionBundle, err := version.GetVersionBundle(o.bundleVersion)
49+
50+
if err != nil {
51+
klog.Errorf("unable to retrieve version "+o.bundleVersion, err)
52+
return err
53+
}
54+
55+
o.values.BundleVersion = BundleVersion{
56+
AppAddon: versionBundle.AppAddon,
57+
PolicyAddon: versionBundle.PolicyAddon,
58+
}
59+
4760
return nil
4861
}
4962

pkg/cmd/install/hubaddon/exec_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
const (
1414
invalidNamespace = "no-such-ns"
1515
ocmNamespace = "open-cluster-management"
16+
ocmVersion = "latest"
1617

1718
invalidAddon = "no-such-addon"
1819
channelDeployment = "multicluster-operators-channel"
@@ -22,6 +23,26 @@ const (
2223
)
2324

2425
var _ = ginkgo.Describe("install hub-addon", func() {
26+
ginkgo.Context("validate", func() {
27+
28+
ginkgo.It("Should not create any built-in add-on deployment(s) because it's not a valid add-on name", func() {
29+
o := Options{
30+
names: invalidAddon,
31+
}
32+
33+
err := o.validate()
34+
gomega.Expect(err).To(gomega.HaveOccurred())
35+
})
36+
37+
ginkgo.It("Should not create any built-in add-on deployment(s) because it's not a valid version", func() {
38+
o := Options{
39+
bundleVersion: "invalid",
40+
}
41+
42+
err := o.validate()
43+
gomega.Expect(err).Should(gomega.HaveOccurred())
44+
})
45+
})
2546

2647
ginkgo.Context("runWithClient", func() {
2748

@@ -62,6 +83,7 @@ var _ = ginkgo.Describe("install hub-addon", func() {
6283

6384
ginkgo.It("Should not create any built-in add-on deployment(s) because it's not a valid namespace", func() {
6485
o := Options{
86+
bundleVersion: ocmVersion,
6587
values: Values{
6688
Namespace: invalidNamespace,
6789
hubAddons: []string{appMgrAddonName},
@@ -77,6 +99,9 @@ var _ = ginkgo.Describe("install hub-addon", func() {
7799
values: Values{
78100
Namespace: ocmNamespace,
79101
hubAddons: []string{appMgrAddonName},
102+
BundleVersion: BundleVersion{
103+
AppAddon: ocmVersion,
104+
},
80105
},
81106
}
82107

@@ -105,6 +130,9 @@ var _ = ginkgo.Describe("install hub-addon", func() {
105130
values: Values{
106131
hubAddons: []string{policyFrameworkAddonName},
107132
Namespace: ocmNamespace,
133+
BundleVersion: BundleVersion{
134+
PolicyAddon: ocmVersion,
135+
},
108136
},
109137
}
110138

pkg/cmd/install/hubaddon/options.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,25 @@ type Options struct {
1212
//A list of comma separated addon names
1313
names string
1414
//The file to output the resources will be sent to the file.
15-
outputFile string
16-
values Values
15+
outputFile string
16+
values Values
17+
bundleVersion string
1718
}
1819

19-
//Values: The values used in the template
20+
type BundleVersion struct {
21+
// app image version
22+
AppAddon string
23+
// policy image version
24+
PolicyAddon string
25+
}
26+
27+
// Values: The values used in the template
2028
type Values struct {
2129
hubAddons []string
2230
// Namespace to install
2331
Namespace string
32+
// Version to install
33+
BundleVersion BundleVersion
2434
}
2535

2636
func newOptions(clusteradmFlags *genericclioptionsclusteradm.ClusteradmFlags, streams genericclioptions.IOStreams) *Options {

pkg/cmd/install/hubaddon/scenario/addon/appmgr/deployment_appsubsummary.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ spec:
1919
serviceAccountName: multicluster-operators-subscription
2020
containers:
2121
- name: multicluster-operators-appsub-summary
22-
image: quay.io/open-cluster-management/multicloud-operators-subscription:latest
22+
image: quay.io/open-cluster-management/multicloud-operators-subscription:{{ .BundleVersion.AppAddon }}
2323
ports:
2424
- containerPort: 9443
2525
command:

pkg/cmd/install/hubaddon/scenario/addon/appmgr/deployment_channel.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ spec:
1919
serviceAccountName: multicluster-operators-subscription
2020
containers:
2121
- name: multicluster-operators-channel
22-
image: quay.io/open-cluster-management/multicloud-operators-channel:latest
22+
image: quay.io/open-cluster-management/multicloud-operators-channel:{{ .BundleVersion.AppAddon }}
2323
ports:
2424
- containerPort: 7443
2525
command:

pkg/cmd/install/hubaddon/scenario/addon/appmgr/deployment_placementrule.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ spec:
1919
serviceAccountName: multicluster-operators-subscription
2020
containers:
2121
- name: multicluster-operators-placementrule
22-
image: quay.io/open-cluster-management/multicloud-operators-subscription:latest
22+
image: quay.io/open-cluster-management/multicloud-operators-subscription:{{ .BundleVersion.AppAddon }}
2323
ports:
2424
- containerPort: 6443
2525
command:

pkg/cmd/install/hubaddon/scenario/addon/appmgr/deployment_subscription.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ spec:
1919
serviceAccountName: multicluster-operators-subscription
2020
containers:
2121
- name: multicluster-operators-subscription
22-
image: quay.io/open-cluster-management/multicloud-operators-subscription:latest
22+
image: quay.io/open-cluster-management/multicloud-operators-subscription:{{ .BundleVersion.AppAddon }}
2323
ports:
2424
- containerPort: 8443
2525
command:
2626
- /usr/local/bin/multicluster-operators-subscription
2727
- --sync-interval=60
28-
- --agent-image=quay.io/open-cluster-management/multicloud-operators-subscription:latest
28+
- --agent-image=quay.io/open-cluster-management/multicloud-operators-subscription:{{ .BundleVersion.AppAddon }}
2929
imagePullPolicy: IfNotPresent
3030
env:
3131
- name: WATCH_NAMESPACE

pkg/cmd/install/hubaddon/scenario/addon/policy/addon-controller_deployment.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,18 @@ spec:
3232
fieldRef:
3333
fieldPath: metadata.name
3434
- name: CONFIG_POLICY_CONTROLLER_IMAGE
35-
value: quay.io/open-cluster-management/config-policy-controller:latest
35+
value: quay.io/open-cluster-management/config-policy-controller:{{ .BundleVersion.PolicyAddon }}
36+
- name: GOVERNANCE_POLICY_SPEC_SYNC_IMAGE
37+
value: quay.io/open-cluster-management/governance-policy-spec-sync:{{ .BundleVersion.PolicyAddon }}
38+
- name: GOVERNANCE_POLICY_STATUS_SYNC_IMAGE
39+
value: quay.io/open-cluster-management/governance-policy-status-sync:{{ .BundleVersion.PolicyAddon }}
40+
- name: GOVERNANCE_POLICY_TEMPLATE_SYNC_IMAGE
41+
value: quay.io/open-cluster-management/governance-policy-template-sync:{{ .BundleVersion.PolicyAddon }}
42+
- name: GOVERNANCE_POLICY_FRAMEWORK_ADDON_IMAGE
43+
value: quay.io/open-cluster-management/governance-policy-framework-addon:{{ .BundleVersion.PolicyAddon }}
3644
- name: KUBE_RBAC_PROXY_IMAGE
3745
value: registry.redhat.io/openshift4/ose-kube-rbac-proxy:v4.10
38-
- name: GOVERNANCE_POLICY_FRAMEWORK_ADDON_IMAGE
39-
value: quay.io/open-cluster-management/governance-policy-framework-addon:latest
40-
image: quay.io/open-cluster-management/governance-policy-addon-controller:latest
46+
image: quay.io/open-cluster-management/governance-policy-addon-controller:{{ .BundleVersion.PolicyAddon }}
4147
imagePullPolicy: IfNotPresent
4248
name: manager
4349
resources:

pkg/cmd/install/hubaddon/scenario/addon/policy/propagator_deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ spec:
3030
fieldPath: metadata.name
3131
- name: OPERATOR_NAME
3232
value: governance-policy-propagator
33-
image: quay.io/open-cluster-management/governance-policy-propagator:latest
33+
image: quay.io/open-cluster-management/governance-policy-propagator:{{ .BundleVersion.PolicyAddon }}
3434
imagePullPolicy: Always
3535
name: governance-policy-propagator
3636
ports:

0 commit comments

Comments
 (0)