Skip to content

Commit

Permalink
Upgrade cert-manager to v0.15.2
Browse files Browse the repository at this point in the history
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
  • Loading branch information
meyskens authored and alexellis committed Jul 27, 2020
1 parent 5c46d64 commit 9b92cb2
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 23 deletions.
48 changes: 26 additions & 22 deletions cmd/apps/certmanager_app.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ package apps

import (
"fmt"
"golang.org/x/mod/semver"
"log"
"os"
"path"
"strings"

"github.com/alexellis/arkade/pkg/k8s"

Expand All @@ -22,18 +24,18 @@ func MakeInstallCertManager() *cobra.Command {
var certManager = &cobra.Command{
Use: "cert-manager",
Short: "Install cert-manager",
Long: "Install cert-manager for obtaining TLS certificates from LetsEncrypt",
Long: "Install cert-manager for TLS certificates management",
Example: "arkade install cert-manager",
SilenceUsage: true,
}

certManager.Flags().StringP("namespace", "n", "cert-manager", "The namespace to install cert-manager")
certManager.Flags().StringP("version", "v", "v0.15.2", "The version of cert-manager to install, has to be >=0.15.0")
certManager.Flags().Bool("update-repo", true, "Update the helm repo")
certManager.Flags().Bool("helm3", true, "Use helm3, if set to false uses helm2")

certManager.RunE = func(command *cobra.Command, args []string) error {
wait, _ := command.Flags().GetBool("wait")
const certManagerVersion = "v0.12.0"
kubeConfigPath := config.GetDefaultKubeconfig()

if command.Flags().Changed("kubeconfig") {
Expand All @@ -47,9 +49,10 @@ func MakeInstallCertManager() *cobra.Command {
fmt.Println("Using helm3")
}
namespace, _ := command.Flags().GetString("namespace")
version, _ := command.Flags().GetString("version")

if namespace != "cert-manager" {
return fmt.Errorf(`To override the "cert-manager" namespace, install cert-manager via helm manually`)
if !semver.IsValid(version) {
return fmt.Errorf("%q is not a valid semver version", version)
}

userPath, err := config.InitUserDir()
Expand Down Expand Up @@ -87,30 +90,35 @@ func MakeInstallCertManager() *cobra.Command {

chartPath := path.Join(os.TempDir(), "charts")

err = helm.FetchChart("jetstack/cert-manager", certManagerVersion, helm3)
err = helm.FetchChart("jetstack/cert-manager", version, helm3)
if err != nil {
return err
}

log.Printf("Applying CRD\n")
crdsURL := "https://raw.githubusercontent.com/jetstack/cert-manager/release-0.12/deploy/manifests/00-crds.yaml"
res, err := k8s.KubectlTask("apply", "--validate=false", "-f",
crdsURL)
if err != nil {
return err
}
overrides := map[string]string{}

// if <0.15 install CRDs using kubectl else use Helm
if semver.Compare(version, "v0.15.0") < 0 {
log.Printf("Applying CRD\n")
crdsURL := fmt.Sprintf("https://raw.githubusercontent.com/jetstack/cert-manager/release-%s/deploy/manifests/00-crds.yaml", strings.Replace(semver.MajorMinor(version), "v", "", -1))
res, err := k8s.KubectlTask("apply", "--validate=false", "-f",
crdsURL)
if err != nil {
return err
}

if res.ExitCode > 0 {
return fmt.Errorf("error applying CRD from: %s, error: %s", crdsURL, res.Stderr)
if res.ExitCode > 0 {
return fmt.Errorf("error applying CRD from: %s, error: %s", crdsURL, res.Stderr)
}
} else {
overrides["installCRDs"] = "true"
}

outputPath := path.Join(chartPath, "cert-manager/rendered")
overrides := map[string]string{}

if helm3 {
err := helm.Helm3Upgrade("jetstack/cert-manager", namespace,
"values.yaml",
"v0.12.0",
version,
overrides,
wait)

Expand Down Expand Up @@ -142,11 +150,7 @@ func MakeInstallCertManager() *cobra.Command {
}

const CertManagerInfoMsg = `# Get started with cert-manager here:
# https://docs.cert-manager.io/en/latest/tutorials/acme/http-validation.html
# Check cert-manager's logs with:
kubectl logs -n cert-manager deploy/cert-manager -f`
# https://docs.cert-manager.io/en/latest/tutorials/acme/http-validation.html`

const certManagerInstallMsg = `=======================================================================
= cert-manager has been installed. =
Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ require (
github.com/sethvargo/go-password v0.1.2
github.com/spf13/cobra v0.0.5
github.com/spf13/pflag v1.0.5 // indirect
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
golang.org/x/mod v0.3.0
)
9 changes: 9 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,20 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

0 comments on commit 9b92cb2

Please sign in to comment.